java面试题二十九 多线程数据共享问题
2015-09-28 22:41
218 查看
1 编一个程序,实现2个线程对 j 变量自增, 2个线程对 j 变量自减
2 代码如下
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 block e.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编程基础+常量与变量+类型的转换+进制的转换+运算符+scanner的使用+程序流程结构控制+循环结构
- 面试的时候你碰会到一些奇葩的面试官!(一)
- 软件测试面试题3
- 软件测试面试题2
- 软件测试面试题
- Java基础知识强化之IO流笔记06:面试题之如果在finally之前有return
- 阿里面试经历总结
- 程序员能力矩阵【转】
- 职场人生的故事篇
- 面试札记(一)
- 黑马程序员——Java基础语法(一)_关键字、标识符、常量、变量、运算符
- 黑马程序员——Java基础语法(一)_关键字、标识符、常量、变量、运算符
- 黑马程序员——Java基础语法(一)_关键字、标识符、常量、变量、运算符
- 黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符
- 黑马程序员—关于函数
- 黑马程序员——Java基础(四)之方法、数组
- 黑马程序员-----@property参数学习
- 黑马程序员----C 语言学习笔记之指针函数与函数指针
- 面试练习题-100w个数中找出最大的100个数
- Java基础面试十道题(二)