public class Class1 {
public static void main(String args[]) {
ShareData shareDate = new ShareData(50);
Thread[] aThreadArray = new Thread[20];
System.out.println("\t刚开始的值是:" + shareDate.getVal());
System.out.println("\t多个线程正在工作,请稍等!");
for (int i = 0; i < 20; i++) {
int d = i % 2 == 0 ? 50 : -30;
aThreadArray[i] = new Thread(new MyMultiThreadClass(shareDate, d));
aThreadArray[i].start();
}
WhileLoop11: // 等待所有线程结束
while (true) {
for (int i = 0; i < 20; i++) {
if (aThreadArray[i].isAlive()) {
// System.out.println("if in");
continue WhileLoop11;
}
}
System.out.println("退出while循环");
break;
}
System.out.println("\t最后的结果是: " + shareDate.getVal());
}
}
class MyMultiThreadClass implements Runnable {
ShareData useInteger;
int delta;
MyMultiThreadClass(ShareData mrc, int d) {
useInteger = mrc;
delta = d;
}
public void run() {
for (int i = 0; i < 1000; i++) {
useInteger.modifyData(delta);
try {
Thread.sleep(10);// 做一些其他的处理
} catch (InterruptedException e) {
}
}
}
}
class ShareData {
int val;
ShareData(int initValue) {
val = initValue;
}
int getVal() {
return val;
}
private void putVal(int v) {
val = v;
}
//synchronized保证数据一致性
synchronized void modifyData(int d) {
putVal(getVal() + d);
}
}
分享到:
相关推荐
今天没事给大家写一个多线程例子 今天没事给大家写一个多线程例子
C# 多线程实例C# 多线程实例C# 多线程实例C# 多线程实例C# 多线程实例C# 多线程实例
Delphi API 串口通信 多线程例子.rar
excel vba 多线程 实例 excel vba 多线程 实例
Delphi 三个多线程例子代码是个实例解压后即可运行,经过测试运行没有错误。大家放心下载
简单多线程实例。简单多线程实例。简单多线程实例。简单多线程实例。简单多线程实例。
C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例),可直接运行
Delphi中最简单的多线程例子 Delphi中最简单的多线程例子
大漠插件作者提供的易语言大漠多线程例子
VB多线程实例VB多线程实例VB多线程实例VB多线程实例
C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例)
Qt 多线程及简单实例 demo。 多线程的几大特点: 1.多线程的执行顺序无法保证,与操作系统的调度策略和线程优先级等因素有关。 2.多线程的切换可能发生在任何时刻、任何地点。 3.多线程对代码的敏感度高,因此对...
C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例).rar
易语言多线程简单实用例子分享。@小凡じ亦匿名。 。Tags:多线程。
一个使用SPcomm控件的串口的多线程例子。有源代码的。只作技术交流,只供参考!
多线程例子 演示多线程使用
BCB多线程实例. 多线程实例多线程实例多线程实例多线程实例多线程实例多线程实例多线程实例多线程实例多线程实例多线程实例多线程实例 BCB多线程实例 BCB多线程实例BCB多线程实例
stm32单片机多线程实例
VB 多线程例子学习