package thread;
/**
*
* synchronized关键字实现多线程同步
*(1)静态变量为全部对象共享,能够对其加锁,实如今同步
*(2)静态方法加锁,锁住的是类,也可实现同步
*/
public
class PrintNum
implements Runnable
{
private
int id;
private
static Object lock =
new Object();
public PrintNum(
int id)
{
this.id = id;
}
// 方法1:对静态变量加锁
// public void run()
// {
//
// synchronized (lock)
// {
// for (int i = 0; i < 100; i++)
// {
//
// System.out.println("Thread-" + id + ":" + i);
// }
// }
//
// }
//方法2:对静态方法加锁
public
void run()
{
taskHandler(id);
}
synchronized
public
static
void taskHandler(
int id)
{
for (
int i = 0; i < 100; i++)
{
System.out.println(
"Thread-" + id +
":" + i);
}
}
public
static
void main(String args[])
{
for (
int i = 0; i < 10; i++)
{
new Thread(
new PrintNum(i)).start();
//the flowing code just for test
for(
int j = 1;j<10;j++)
{
if(j==9)
{
System.out.println(
"wait me for a while..."); } } } } }