p { margin-bottom: 0.21cm; }
synchronized 实现线程同步原理 多线程是用 synchronized 实现线程同步的 使用 synchronized 的时候需要传递一个任意对象进去 术语叫标识 当代码执行到 synchronized 的时候 synchronized 传入的对象表示为 1 执行完后 再把标识变为 0 只有当标识为 0 的时候 里面的代码才能执行
-
用代码块实现同步
synchronized ( str ){
if ( index > 0) {
System. out .println( "run()" + Thread. currentThread ().getName()
+ " " + index );
}
// super.run();
index --;
}
-
用sale 方法实现线程同步
Sale 方法实现线程同原理 Sale 方法实现线程同步和代码块实现线程同步的原理一样 都有一个对象作为标识 sale 方法所使用的标识为this 对象
class TestThead implements Runnable /* extends Thread */ {
String str = new String( "" );
int index = 100;
public void run() {
// TODO Auto-generated method stub
while ( true ) {
// 调用 sale 线程同步方法
sale();
}
}
// 实现 sale 方法实现线程同步
private synchronized void sale () {
if ( index > 0) {
System. out .println( "run()" + Thread. currentThread ().getName()
+ " " + index );
}
// super.run();
index --;
}
}