java面试题二十九 多线程数据共享问题
生活随笔
收集整理的這篇文章主要介紹了
java面试题二十九 多线程数据共享问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 編一個程序,實現2個線程對 j 變量自增, 2個線程對 j 變量自減
2 代碼如下
public class TestThread {public static void main(String[] args) {NewThread nt=new NewThread();new Thread(nt).start(); new Thread(nt).start(); new Thread(nt).start(); new Thread(nt).start(); }} class NewThread implements Runnable {int j=0;String runThreadName = null;public void run(){while(true){ synchronized(this){try {Thread.sleep(1000);runThreadName = Operation(Thread.currentThread().getName());System.out.println(runThreadName+" : j = " +j);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public String Operation(String threadName){int operation = Integer.parseInt(threadName.split("-")[1]);String name = null;switch(operation){case 0: j++;name="自增線程1";break;case 1: j++;name="自增線程2";break;case 2: j--;name="自減線程3";break;case 3: j--;name="自減線程4";break;}return name;} }
?
總結
以上是生活随笔為你收集整理的java面试题二十九 多线程数据共享问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java面试题二十八 从未用过的 na
- 下一篇: java面试题三十 public,pri