设计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基础知识,多线程,Java EE等等。
Java程序员面试宝典 pdf,内容涉及String、Servlet、int 和 Integer的区别、、String 和StringBuffer的区别、运行时异常与一般异常有何异同、Servlet的生命周期、、EJB的技术实现、、Collection 和 Collections的...
大数据程序员面试宝典——不同问题类型方式 汇集了本人在平常工作中遇到的一些面试题以及个人的解答,并附上网络上的一些解决方法。 大体涵盖以下知识 bigdata :hadoop、flink、hbase、hive、impala、算法、设计...
面试题集共分为以下十部分: 一、Core Java: 1 — 95 题 1 — 24 页 基础及语法: 1 — 61 题 1 — 13 页 异常: 62 — 69 题 13 — 15 页 集合: 70 — 80 题 15 — 18 页 线程: 81 — 90 题 18 — 21 页 IO & ...
史上最全的java程序员面试宝典,轻松吊打面试官。 此资源中包含有java面试中的大部分面试题,覆盖有java基础面试题,Java多线程面试题,Java虚拟机面试题,mq面试题,MySQL面试题,mybatis面试题,nginx面试题,...
java基础,java线程,java集合,jvm,数据库,各种框架
1、java基础部分:java基础部分问很简单,问的最多的就是a:抽象类接口的区别;b:作用域public,private,protected,以及不写时的区别;c:重写和重载的区别; d:一些集合类的区别,工作原理,如list,map等; e:arraylist...
Java初中级程序员面试宝典 ①熟悉Java基础、面向对象、JVM、IO流程、多线程、集合框架 ②熟悉JSP、Servlet、Spring、Hibernate、Mybatis、SpringMVC ③熟悉Http协议、Socket、WebService及网络编程 ④熟悉Maven及...
包含: 120个Java经典面试题和答案(上).pdf 120个Java经典面试题和答案(下).pdf Java程序员面试笔试宝典.pdf Java程序员面试笔试真题与解析 .pdf ...程序员面试宝典.pdf JAVA面试题集锦1.pdf JAVA面试题集锦2.pdf
Java程序员面试宝典+题集(2019最新).rar JAVA程序员面试宝典 第4版(带书签 高清扫描版) Java程序员面试宝典(第三版) PDF 电子书.zip Java程序员面试宝典1-120题 Java程序员面试笔试宝典-何昊.pdf Java面试宝典....
java常用基本知识大全,包含线程,内部类,struts,spring,hibernate的详细介绍txt版
面试资料,各大公司历年所整合的问题,面试有帮助。内容包括基础,流,多线程,后端框架,前端框架,数据库交互等等
程序员java面试题汇总 【资源介绍】 适宜人群:准备跳槽的初/中/高级 Java 程序员 想要查漏补缺的人 想要不断完善和扩充自己 Java 技术栈的人 Java 面试官 资源分为十九个模块,分别是: Java 基础、容器、多线程、...
1.springboot相关面试题 2.springcloud话术 3.ElasticSearch话术 4.页面静态化 5.rabbitmq话术 6.认证授权活术 7.nginx话术 8.redis话术 9.前端话术 10.工作流活术 11.spring话术 12.springMVC话术 13.mybatis话术 ...
java企业面试题大全(包括18个文档)...13、程序员面试宝典.pdf。14、代码与编程题.pdf。15、各大公司面试题.pdf。16、数据库设计规范V1.00.pdf。17、线程编程方面.pdf。18、应聘Java笔试时可能出现问题及其答案.pdf。
1、让学者有面试的技能,运用面试相关的知识点 2、让求职突破面试难点,成功入职
总结Java基础相关的面试题,比如:Java基础部分面向对象异常集合多线程IO流
java程序员面试必备 java多线程 i/o流
包含ejb、java基础、代码及编程题、线程编程、应聘笔试可能出现得问题与解答、以及各大公司笔试大全