用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
2014-03-20 10:19
253 查看
package com.ljn.base; /** * @author lijinnan * @date:2013-9-12 上午9:55:32 */ public class IncDecThread2 { /** * 测试次数 */ public static final int TEST_COUNT = 20; /* * 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1 * 两个问题: * 1、线程同步--synchronized * 2、线程之间如何共享同一个j变量--将j以及对j的操作封装在Data类中,然后作为共享对象传递给IncRunnable和DecRunnable * * 相对上面第一种解法(利用内部类),本解法更符合面向对象的思想 */ public static void main(String[] args) { Data data = new Data(); //加1线程,2个 new Thread(new IncRunnable(data)).start(); new Thread(new IncRunnable(data)).start(); //减1线程,2个 new Thread(new DecRunnable(data)).start(); new Thread(new DecRunnable(data)).start(); } } class Data { private int j = 10; public synchronized void inc () { j++; System.out.println(Thread.currentThread().getName()+"-inc:"+j); } public synchronized void dec () { j--; System.out.println(Thread.currentThread().getName()+"-dec:"+j); } } class IncRunnable implements Runnable { private Data data; public IncRunnable (Data data) { this.data = data; } @Override public void run() { for (int i = 0; i < IncDecThread2.TEST_COUNT; i++) { data.inc(); } } } class DecRunnable implements Runnable { private Data data; public DecRunnable (Data data) { this.data = data; } @Override public void run() { for (int i = 0; i < IncDecThread2.TEST_COUNT; i++) { data.dec(); } } }
相关文章推荐
- 用Java写一个多线程程序,如写四个线程,二个加1,二个对一变量减一,输出:
- 用Java写一个多线程程序,如写四个线程,二个加1,二个对一变量减一,输出:
- java多线程笔试题:设计4个线程,其中两个线程每次对j增加1,另外2个线程每次对j减少1.写出程序
- 用java写一个多线程程序,其中两个对一个变量加1,另两个对一个变量减1
- 设计四个线程,其中共两个线程每次对j增加1,另外两个线程每次对j减少1。循环100次,写出程序。
- [Java 09 多线程] 线程是指一个进程在执行过程中可以产生更小的程序单元
- [Java 09 多线程] 线程是指一个进程在执行过程中可以产生更小的程序单元
- 【Java面试题】29 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
- java多线程实战( 多个线程 修改同一个变量)
- 写四个线程,二个加1,二个对一个变量减一
- 一道java线程面试题--设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
- java中多线程一个线程负责客户端读数据到队列另外一个线程负责从队列输出数据
- java面试笔试题:设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1.写出程序
- 多线程学习--案例--多线程中数据共享--设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序
- 迅雷笔试题 (JAVA多线程)启动三个线程,分别打印A B C,现在写一个程序 循环打印ABCABCABC
- java-四个线程修改一个变量
- Java多线程,启动四个线程,两个执行加一,另外两个执行减一
- 写四个线程,二个加1,二个对一个变量减一
- 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
- java多线程学习之通过ThreadLocal实现每个线程拥有自己的变量