这个题太常见了,但是要自己独立的默写出来也不是很容易的哦!
代码:
package renrenPratice;
public class testSomeThread {
/**
* @param args
*/
int j = 10;
public static void main(String[] args) {
// TODO Auto-generated method stub
testSomeThread tt = new testSomeThread();
addJ myaddj = tt.new addJ();
minusJ myminusj = tt.new minusJ();
for (int m = 0; m < 2; m++) {
Thread t = new Thread(myaddj);
t.start();
t = new Thread(myminusj);
t.start();
}
}
private synchronized void addj() {
// TODO Auto-generated method stub
for (int k = 0; k < 10; k++) {
++j;
System.out.println("j++ --> now j is " + j);
}
}
private synchronized void minusj() {
// TODO Auto-generated method stub
for (int l = 0; l < 10; l++) {
--j;
System.out.println("j-- --> now j is " + j);
}
}
class addJ implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
addj();
}
}
class minusJ implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
minusj();
}
}
}
运行结果:
j++ --> now j is 11
j++ --> now j is 12
j++ --> now j is 13
j++ --> now j is 14
j++ --> now j is 15
j++ --> now j is 16
j++ --> now j is 17
j++ --> now j is 18
j++ --> now j is 19
j++ --> now j is 20
j-- --> now j is 19
j-- --> now j is 18
j-- --> now j is 17
j-- --> now j is 16
j-- --> now j is 15
j-- --> now j is 14
j-- --> now j is 13
j-- --> now j is 12
j-- --> now j is 11
j-- --> now j is 10
j++ --> now j is 11
j++ --> now j is 12
j++ --> now j is 13
j++ --> now j is 14
j++ --> now j is 15
j++ --> now j is 16
j++ --> now j is 17
j++ --> now j is 18
j++ --> now j is 19
j++ --> now j is 20
j-- --> now j is 19
j-- --> now j is 18
j-- --> now j is 17
j-- --> now j is 16
j-- --> now j is 15
j-- --> now j is 14
j-- --> now j is 13
j-- --> now j is 12
j-- --> now j is 11
j-- --> now j is 10
看看起来很合理。
分享到:
相关推荐
java用线程的两种实现方式设计四个线程两次对J加1两次对J减1
本程序主要是通过利用线程类,内部类等方法实现对j的增减,个人看到面试题才做了一下
C#面试题 包括 ADO.net 多线程等 C#面试题 包括 ADO.net 多线程等 C#面试题 包括 ADO.net 多线程等 C#面试题 包括 ADO.net 多线程等 C#面试题 包括 ADO.net 多线程等
面试题c++mysql多线程操作系统 面试题c++mysql多线程操作系统 面试题c++mysql多线程操作系统 面试题c++mysql多线程操作系统 面试题c++mysql多线程操作系统
多线程面试题
两个线程共享变量a,一个负责加一,一个负责输出 通过信号灯的pv操作完成
java常见面试题java常见面试题java常见面试题java常见面试题java常见面试题java常见面试题java常见面试题java常见面试题java常见面试题java常见面试题
2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题、Netty面试题、Elasticsearch面试题、Tomcat面试题、Dubbo面试题、Kafka面试题、Linux面试题、2021面试题、java面试...
用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出
1. 1 - 100, 找出质数 2. 冒泡排序 3. 1~100共一百个自然数,...6. 设计4个线程,其中两个线程每次对j增加1,另外两个线程每次对j减少1 7. 给你List A,已知,如 3,1,4,9,5```````100. 让你求出里面的最大值与最小值。
NULL 博文链接:https://zhugp1987-126-com.iteye.com/blog/647402
面试 面试_Java一些常见面试题+题解之多线程开发_JavaConcurrent
java常见面试题(史上最全最经典-希望对你有用).基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法。
java常见面试题(史上最全最经典-希望对你有用).基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法。历年常见面试题型,涵盖...
启动两个线程,一个线程打印1~52,另一个线程打印A~Z
面试的时候碰到的一个问题,实现多线程对一个全局数的自加,另外一个线程当全局数自加1以后立马显示这个数的现值。
史上最强多线程面试44题和答案:线程锁+线程池+线程同步等
线程编程方面面试题,主要关于面试时面试官主要问到的问题
iOS多线程面试题
73道Java面试题合集-多线程与进程