cnblogs.com的html文件
This commit is contained in:
46
dcrenl/java 多线程.html
Normal file
46
dcrenl/java 多线程.html
Normal file
@@ -0,0 +1,46 @@
|
||||
<pre class="language-java"><code> public void main()
|
||||
{
|
||||
Runnable runnable = new ShareVariableRunnable();
|
||||
Thread[] threads = new Thread[3];
|
||||
for (int i = 0; i < 3; i++) {
|
||||
threads[i] = new Thread(runnable, "RandomThread:" + i);
|
||||
}
|
||||
for (Thread thread : threads) {
|
||||
thread.start();
|
||||
}
|
||||
while (threads[0].isAlive() || threads[1].isAlive() || threads[2].isAlive()) {
|
||||
try {
|
||||
Thread.sleep(100);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
System.out.println("线程1、2、3结束");
|
||||
}
|
||||
|
||||
class ShareVariableRunnable implements Runnable {
|
||||
|
||||
public int state = 0;
|
||||
private int count = 100;
|
||||
private int curr = 0;
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public void run() {
|
||||
int currThread = 0;
|
||||
synchronized (this) {
|
||||
currThread = curr;
|
||||
curr += 10;
|
||||
|
||||
}
|
||||
for (int i = 0; i < 10; i++) {
|
||||
Thread.sleep(200);
|
||||
System.out.println("" + Thread.currentThread().getName() + ",count:" + currThread++);
|
||||
}
|
||||
if (curr < count) {
|
||||
run();
|
||||
} else {
|
||||
state = 1;
|
||||
}
|
||||
}
|
||||
}</code></pre>
|
||||
Reference in New Issue
Block a user