设计4个线程,两个线程每次对j增加1,另外两个对j减少1
package thread;
public class ThreadTest {
private int j;
private synchronized void inc() {
j++;
System.out.println(Thread.currentThread().getName() + "-inc:" + j);
}
private synchronized void dec() {
j--;
System.out.println(Thread.currentThread().getName() + "-dec:" + j);
}
class Inc implements Runnable { // 内部类,线程
public void run() {
for (int i = 0; i < 100; i++) {
inc();
}
}
}
class Dec implements Runnable {
public void run() {
for (int i = 0; i < 100; i++) {
dec();
}
}
}
public static void main(String[] args) {
ThreadTest t = new ThreadTest();
Inc inc = t.new Inc();
Dec dec = t.new Dec();
for (int i = 0; i < 2; i++) {
Thread t1 = new Thread(inc);
t1.start();
Thread t2 = new Thread(dec);
t2.start();
// Thread t3 = new Thread(inc);
// t3.start();
// Thread t4 = new Thread(dec);
// t4.start();
}
}
}
执行结果是根据线程之间的推进次序的不同而不同
加上同步关键字,则变量j的改变就是在前一个线程改变后的基础上改变的。
不加同步会出现:Thread-3-dec:28
Thread-3-dec:28
Thread-1-dec:-76
Thread-3-dec:23
Thread-3-dec:-77
Thread-3-dec:-78
分享到:
相关推荐
《Java程序员面试宝典》列举了各大IT公司的面试真题,详细分析了应聘Java程序员职位的常见考点,主要内容包括面试流程及求职准备、Java语言基础、数据类型、集合框架、图形用户界面、输入与输出、多线程、反射机制、...
根据提供的文件信息,我们可以推断出这...综上所述,《Java程序员面试笔试宝典》这本书旨在全方位地帮助Java开发者们提高自己的技术水平和面试成功率,无论是对于初学者还是有一定工作经验的专业人士都非常有参考价值。
《2018年新版Java程序员面试宝典》是一本专为Java开发者设计的面试准备指南,旨在帮助求职者在2018年的面试中脱颖而出,成功获取理想的职位。这本书全面覆盖了Java语言的核心概念、高级特性以及实际开发中的常见问题...
【程序员面试宝典-前端-2023最新】涵盖了前端开发者面试的全面知识体系,旨在帮助应聘者准备各类面试题目。这份宝典注重考察应聘者的综合素质,包括技术深度、项目经验、问题解决能力和学习能力等多个方面。以下是...
Java面试宝典是Java程序员求职面试的重要参考资料,它涵盖了Java编程语言的核心概念、高级特性、设计模式、并发处理、框架应用、数据库交互等多个方面。以下将详细解析这些关键知识点: 1. **Java基础**:面试中,...
### JAVA程序员面试宝典 第4版-欧立奇 #### 关键知识点概览 《JAVA程序员面试宝典 第4版》是一本专为JAVA程序员准备的面试指南书籍,由作者欧立奇撰写。本书旨在帮助JAVA程序员更好地应对面试挑战,通过深入浅出的...
《Java程序员面试秘技-陈浩》是一本专门为Java开发者准备的面试指南,旨在帮助求职者在面试过程中脱颖而出。本书作者陈浩深入剖析了Java编程和技术面试的核心要点,旨在为读者提供全面、实用的面试技巧和知识。 1. ...
《程序员面试宝典——Java面试解析》 在Java开发者的职业生涯中,面试是至关重要的一个环节,它决定了你能否进入理想的公司,进一步提升自己的技术能力。这份“Java面试宝典”正是为了帮助Java中高级开发工程师们更...
Java程序员面试笔试宝典是何昊撰写的一本针对Java开发者面试和笔试准备的重要参考资料。这本书深入浅出地探讨了Java语言的关键特性和应用场景,旨在帮助求职者提升技能,顺利通过面试。以下是对Java语言特点的详细...
《Java程序员面试之--葵花宝典》是针对Java开发者面试准备的一份珍贵资料,它包含近50页的Word文档,集成了大量的热门面试问题和深入的解答,旨在帮助Java程序员在求职过程中更好地展现自己的技能和理解。...
《Java程序员面试宝典2010版》是针对Java开发者进行面试准备的重要参考资料,它汇集了众多IT公司的面试和笔试题目,旨在帮助求职者掌握关键的Java技术知识,提高面试成功率。以下是对该宝典中可能涵盖的主要知识点的...
Java程序员面试宝典2019修订版是针对Java开发人员的一份重要的参考资料,涵盖了Java基础知识和一些面试中常见的问题。以下是从文档中提取的与Java相关的知识点: 1. Java面向对象特性:面向对象的三大特性包括封装...
《JAVA程序员面试宝典》第四版是一本专为准备JAVA面试的程序员精心编写的指南,旨在帮助读者全面理解和掌握JAVA编程技术,以便在面试中表现出色。这本书包含了丰富的JAVA核心概念、进阶技术和最佳实践,是JAVA开发者...
《Java程序员面试宝典》是Java开发者在求职面试过程中的一份重要参考资料,它涵盖了Java编程的基础、进阶以及面试常见问题。这份压缩包文件包含了一本名为“2008820190118.chm”的帮助文档,很可能是详细整理的面试...
Java程序员面试宝典是一本专为Java开发者准备的面试指南,涵盖了从基础知识到高级概念的全方位内容,旨在帮助求职者顺利通过技术面试。这本书对于正在寻找Java开发职位的程序员来说,是一份非常实用的参考资料。 在...
《JAVA程序员面试宝典》是一本专为Java开发者准备的面试指南,旨在帮助读者全面掌握Java编程语言的核心概念和技术,以便在求职面试中表现出色。这本书涵盖了从基础语法到高级特性的广泛内容,包括但不限于面向对象...