多线程是多进程的基础,一个进程可以有多个线程.
Object obj=new Object();
Thread t=new Thread(new Runnable(){public void run{synchronized(obj) {} } } );//代码块执行
class person extends Thread
{
@Override
public void run()
{
synchronized(obj)
{
}
}
}
synchronized 代码块和synchronized方法 申请锁.
obj.wait() /obj.notify() 写在 synchronized里面
一个对象的多个线程必须申请同一把锁.而且若有属于这个对象的进程没有申请锁就会导致其他的申请失效,引起线程安全的问题.
package com.rupeng.thread;
public class ThreadTest2
{
public static void main(String[] args)
{
Object obj = new Object();
Thread t1 = new Thread(new Runnable()
{
@Override
public void run()
{
synchronized (obj)
{
try
{
System.out.println("t1即将wait");
obj.wait();
System.out.println("t1收到通知,执行完成");
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
});
Thread t2 = new Thread(new Runnable()
{
@Override
public void run()
{
synchronized (obj)
{
System.out.println("t2准备通知t1了");
obj.notify();
}
}
});
t1.start();
t2.start();
}
}
原文:http://www.cnblogs.com/yqwstart2017/p/7260828.html