Java多线程之syncronized(二)
来源:互联网 发布:微信聊天数据怎么恢复 编辑:程序博客网 时间:2024/06/05 15:19
package three.day.thread.my;
public class SyncronizedTs {
public static void main(String[] args) {
Thread tt = new Thread(new ThreadTest());
tt.start();
ThreadTest t = new ThreadTest();
Thread tt1 = new Thread(t);
t.setStr("xxxxx");
tt1.start();
}
}
syncronized同步代码块有三种用法,一种是syncronized方法,一种是syncronized共享对象,一种是syncronized字节码对象
class ThreadTest implements Runnable{
private static String str = "";
private static int tickets = 10;
public void setStr(String str){
this.str = str;
}
public void run(){
//sale();
sale2();
}
public void sale2(){
synchronized(str/*implements */){
try {
while (tickets !=0) {
Thread.currentThread().sleep(1000);
System.out.println(Thread.currentThread().getName() + " "
+ tickets--);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public synchronized void sale(){
try {
while (tickets !=0) {
Thread.currentThread().sleep(1000);
System.out.println(Thread.currentThread().getName() + " "
+ tickets--);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class SyncronizedTs {
public static void main(String[] args) {
Thread tt = new Thread(new ThreadTest());
tt.start();
ThreadTest t = new ThreadTest();
Thread tt1 = new Thread(t);
t.setStr("xxxxx");
tt1.start();
}
}
syncronized同步代码块有三种用法,一种是syncronized方法,一种是syncronized共享对象,一种是syncronized字节码对象
class ThreadTest implements Runnable{
private static String str = "";
private static int tickets = 10;
public void setStr(String str){
this.str = str;
}
public void run(){
//sale();
sale2();
}
public void sale2(){
synchronized(str/*implements */){
try {
while (tickets !=0) {
Thread.currentThread().sleep(1000);
System.out.println(Thread.currentThread().getName() + " "
+ tickets--);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public synchronized void sale(){
try {
while (tickets !=0) {
Thread.currentThread().sleep(1000);
System.out.println(Thread.currentThread().getName() + " "
+ tickets--);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
- Java多线程之syncronized(二)
- Java多线程之syncronized(一)
- Java多线程之二
- 黑马程序员——JAVA多线程编程及syncronized关键字使用
- Java syncronized关键字用法详解
- Java syncronized关键字用法详解
- Java多线程之线程池(二)
- java之学习多线程(二)
- Java 入门 多线程 之 多线程返回用户ID(二)
- (二)java多线程之synchronized
- java多线程(二)
- JAVA多线程(二)
- java多线程(二)
- Java多线程(二)
- Java多线程(二)
- Java多线程(二)
- Java多线程(二)
- java多线程(二)
- 2014网易运营工程师笔试题(邮件运维)
- 早该知道的7个JavaScript技巧
- 黑马程序员-JAVA学习之环境搭配
- 人名翻译规则
- hdu4766 network 圆与圆交 (2013网络赛)
- Java多线程之syncronized(二)
- 每日一题(97) - 找出大于某值的最小的不重复数
- POJ 2299 Ultra-QuickSort(归并排序求逆序数)
- C++多重继承,虚函数表的次序
- Distributed garbage collection used in RMI
- POJ 1659 Frogs' Neighborhood
- 查找算法_二分查找
- 尾部插入节点
- Yii中CDbCriteria常用总结(转)