`

java程序员面试宝典----线程

阅读更多
设计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程序员面试宝典

    《Java程序员面试宝典》列举了各大IT公司的面试真题,详细分析了应聘Java程序员职位的常见考点,主要内容包括面试流程及求职准备、Java语言基础、数据类型、集合框架、图形用户界面、输入与输出、多线程、反射机制、...

    java程序员面试宝典配套视频(部分).rar

    Java程序员面试宝典的配套视频(部分),几乎包含所有面试官涉及到的所有问题,包括Java基础知识,多线程,Java EE等等。

    Java程序员面试宝典 PDF 参考资料.rar

    Java程序员面试宝典 pdf,内容涉及String、Servlet、int 和 Integer的区别、、String 和StringBuffer的区别、运行时异常与一般异常有何异同、Servlet的生命周期、、EJB的技术实现、、Collection 和 Collections的...

    大数据程序员面试宝典-不同问题类型方式

    大数据程序员面试宝典——不同问题类型方式 汇集了本人在平常工作中遇到的一些面试题以及个人的解答,并附上网络上的一些解决方法。 大体涵盖以下知识 bigdata :hadoop、flink、hbase、hive、impala、算法、设计...

    java程序员必备的面试宝典秘籍.pdf

    面试题集共分为以下十部分: 一、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多线程面试题,Java虚拟机面试题,mq面试题,MySQL面试题,mybatis面试题,nginx面试题,...

    Java面试宝典.pdf

    java基础,java线程,java集合,jvm,数据库,各种框架

    java程序员面试宝典 含答案

    1、java基础部分:java基础部分问很简单,问的最多的就是a:抽象类接口的区别;b:作用域public,private,protected,以及不写时的区别;c:重写和重载的区别; d:一些集合类的区别,工作原理,如list,map等; e:arraylist...

    Java初中级程序员面试宝典

    Java初中级程序员面试宝典 ①熟悉Java基础、面向对象、JVM、IO流程、多线程、集合框架 ②熟悉JSP、Servlet、Spring、Hibernate、Mybatis、SpringMVC ③熟悉Http协议、Socket、WebService及网络编程 ④熟悉Maven及...

    Java经典面试题库.zip

    包含: 120个Java经典面试题和答案(上).pdf 120个Java经典面试题和答案(下).pdf Java程序员面试笔试宝典.pdf Java程序员面试笔试真题与解析 .pdf ...程序员面试宝典.pdf JAVA面试题集锦1.pdf JAVA面试题集锦2.pdf

    2019java亲生经历面试题答案解析准备.zip

    Java程序员面试宝典+题集(2019最新).rar JAVA程序员面试宝典 第4版(带书签 高清扫描版) Java程序员面试宝典(第三版) PDF 电子书.zip Java程序员面试宝典1-120题 Java程序员面试笔试宝典-何昊.pdf Java面试宝典....

    java程序员面试葵花宝典

    java常用基本知识大全,包含线程,内部类,struts,spring,hibernate的详细介绍txt版

    java最全面试宝典.docx

    面试资料,各大公司历年所整合的问题,面试有帮助。内容包括基础,流,多线程,后端框架,前端框架,数据库交互等等

    程序员java面试题汇总(通关宝典).zip

    程序员java面试题汇总 【资源介绍】 适宜人群:准备跳槽的初/中/高级 Java 程序员 想要查漏补缺的人 想要不断完善和扩充自己 Java 技术栈的人 Java 面试官 资源分为十九个模块,分别是: Java 基础、容器、多线程、...

    程序员面试宝典.zip

    1.springboot相关面试题 2.springcloud话术 3.ElasticSearch话术 4.页面静态化 5.rabbitmq话术 6.认证授权活术 7.nginx话术 8.redis话术 9.前端话术 10.工作流活术 11.spring话术 12.springMVC话术 13.mybatis话术 ...

    java企业面试题大全(18个文档)

    java企业面试题大全(包括18个文档)...13、程序员面试宝典.pdf。14、代码与编程题.pdf。15、各大公司面试题.pdf。16、数据库设计规范V1.00.pdf。17、线程编程方面.pdf。18、应聘Java笔试时可能出现问题及其答案.pdf。

    Java程序员面试宝典视频课程之多线程(十一)

    1、让学者有面试的技能,运用面试相关的知识点 2、让求职突破面试难点,成功入职

    Java程序员面试宝典之JavaSE视频课程

    总结Java基础相关的面试题,比如:Java基础部分面向对象异常集合多线程IO流

    程序员面试之九阴真经

    java程序员面试必备 java多线程 i/o流

    java面试宝典 程序员笔试

    包含ejb、java基础、代码及编程题、线程编程、应聘笔试可能出现得问题与解答、以及各大公司笔试大全

Global site tag (gtag.js) - Google Analytics