//线程同步问题
public class TestThread implements Runnable{
Timer timer = new Timer();
public static void main(String[] args) {
TestThread test = new TestThread();
Thread t1 = new Thread(test);
Thread t2 = new Thread(test);
t1.setName("t1");
t2.setName("t2");
t1.start();
t2.start();
}
public void run() {
timer.add(Thread.currentThread().getName());
}
}
class Timer {
private static int num = 0;
public void add(String name) {
num ++;
try {
Thread.sleep(1);// ---放大效果
} catch(InterruptedException e) {}
System.out.println// 可能被打断
(name + ", 你是第" + num + "个使用timer的线程");
}
}
//以下3个类相同,【运行结果】为第一个类的结果,请注释其他2个相同的类
//2,3两个类主要介绍synchronized 的使用方式
class Timer {
private static int num = 0;
public void add(String name) {
synchronized(this) { //锁定代码段
num ++;
try {
Thread.sleep(1);// ---放大效果
} catch(InterruptedException e) {}
System.out.println// 可能被打断
(name + ", 你是第" + num + "个使用timer的线程");
}
}
}
class Timer {
private static int num = 0;
public synchronized void add(String name) {//锁定过程
num ++;
try {
Thread.sleep(1);// ---放大效果
} catch(InterruptedException e) {}
System.out.println// 可能被打断
(name + ", 你是第" + num + "个使用timer的线程");
}
}
/*
运行结果
--------------------Configuration: <Default>--------------------
t1, 你是第2个使用timer的线程
t2, 你是第2个使用timer的线程
Process completed.
*/
分享到:
相关推荐
同时执行多线程例程同时执行多线程例程同时执行多线程例程
故另外开启一个线程,用于接受客户端的socket消息。服务器在收到一个socket连接之后,把该socket保存到队列中,并对队列中的每个socket开启各自的读写线程。测试可以在不同控制台运行server和client,服务器接收消息...
java多线程经典例程
易语言多线程的运用例程源码,多线程的运用例程,开始,线程运作,销毁全部线程,线程全部暂停,线程全部恢复,取指定内容,挂起线程,恢复线程,创建线程,销毁线程
python 多线程的同步机制 以python2例程的方式讲解了python 多线程的同步 常用的方法,主要是锁、条件同步、队列 多线程的同步 多线程情况下最常见的问题之一:数据共享; 当多个线程都要去修改某一个共享数据...
python 条件同步的使用 条件同步:threading.Condition 多线程同步,python2例程 多线程的同步 多线程情况下最常见的问题之一:数据共享; 当多个线程都要去修改某一个共享数据的时候,需要对数据访问进行同步...
易语言多线程许可证基本例程源码,多线程许可证基本例程,子程序1
VC多线程例程七及图解文档(线程间通信) 含源源码
简单多线程编程入门,可以帮助你实现第一个多线程程序
多线程编程之一——问题提出 相关例程源码
多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理...这里提供简单的多线程例程便于移植。
vc多线程例程.doc的文档,亲测可用。
10个学习vc多线程的例程 vc多线程学习的例程,大家一起分享吧
本资源是关于明华读卡器的Java例程,真实可用。自己做过测试。
简单JAVA例程(绝对新手实例)认识JAVA。简单的JAVA程序!
易语言多线程例程源码,多线程例程,子程序1
VC多线程例程四及图解文档 解说FMC应用工作都线程 带源码
完整版多线程例程-黑客帝国特效.rar
一个非常简单的Java程序 计算长方体的表面积和体积