创建多线程(运用匿名内部类)
public class Test{
public static void main(String[]args){
new Thread(){
public void run(){
System.out.println("123");
}
}.start();
new Thread(){
public void run(){
System.out.println("456");
show();
}
public void show(){
System.out.println("789");
}
}.start();
}
}
//至于最后用callable与future来创建,大家可以在网上查询,我就不再演示了(其实是我自己也不会)。
锁机制
java提供了一种内部的锁机制来支持原子性。
我通过讲解与度娘了解到的锁机制一共包含15中,我就拿其中一个来举例子吧
/**
* Synchronized 线程同步锁。(互斥锁)
*/
public class SynchronizedDemo{
final Synchronized test = new Synchronized();
//运用匿名内部类来创建多线程
new Thread(){
public void run(){
Synchronized(test){
System.out.println(test.name+"---start---");
try{
Thread.sleep(5000);
}catch(Exception e){
e.printStackTrace();
}
System.out.println(test.name+"---end---");
}
}
}
new Thread(){
public void run(){
Synchronized(test){
System.out.println(test.name+"---start---");
try{
Thread.sleep(5000);
}catch(Exception e){
e.printStackTrace();
}
System.out.println(test.name+"---end---");
}
}
}
}
//输出结果
jack---start---
jack---end---
jack---start---
jack---end---
对象锁,同一时间只保证 一个线程访问方法或变量。
所以,输出不可能是
jack---start---
jack---start---
jack---end---
jack---end---
多线程之间的协调运作
通过wait,notify,notifyAll来调控。
如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。在Java中,这个机制的实现依赖于wait/notify。等待机制与锁机制是密切关联的。
今天就到此结束,谢谢浏览。