线程同步问题大都使用synchronized解决,有同步代码块和同步方法的两种方式,主要记一下这两种的区别 测试代码: 运行结果如下: 这段代码的打印结果是,showA…..showC…..会很快打印出来,showB…..会隔一段时间才打印出来,那么showB为什么不能像showC那样很快被调用呢? ...
分类:
编程语言 时间:
2017-03-17 14:09:55
阅读次数:
408
各种同步方法性能比较(synchronized,ReentrantLock,Atomic) java笔记--关于线程同步(7种同步方式) ...
分类:
编程语言 时间:
2017-03-12 19:32:08
阅读次数:
120
一、多线程的并发与并行: 并发:多个线程同时都处在运行中的状态。线程之间相互干扰,存在竞争,(CPU,缓冲区),每个线程轮流使用CPU,当一个线程占有CPU时,其他线程处于挂起状态,各线程断续推进。 并行:多个线程同时执行,但是每个线程各自有自己的CPU,不存在CPU资源的竞争,他们之间也可能存在资 ...
分类:
编程语言 时间:
2017-03-09 19:48:54
阅读次数:
765
一、synchronized同步方法 论:“线程安全”与“非线程安全”是多线程的经典问题。synchronized()方法就是解决非线程安全的。 1、方法内的变量为线程安全 2、实例变量非线程安全 解决方法: 方法前加synchronized关键字。 3、多个对象多个锁 HasSelfPrivate ...
分类:
编程语言 时间:
2017-03-08 22:47:42
阅读次数:
241
1.同步和锁 java中每个对象都有一个内置锁,程序执行非静态的synchronized同步方法时,自动获得执行该方法的对象有关的锁. 一个对象只有一个锁,当一个线程获得锁,其他线程不能进入该对象上的synchronized方法或代码块.直到锁被释放. 线程可以有多个锁,例如,一个对象的同步方法中调 ...
分类:
编程语言 时间:
2017-03-03 01:01:48
阅读次数:
212
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 分两种情况 1):进入此对象的非同步方法 答案:可以 2):进入此对象的同步方法 答案:不可以 JAVA中线程同步的方法(7种)汇总 同步的方法: 一、同步方法 即有synchronized关键字修饰的 ...
分类:
编程语言 时间:
2017-02-26 21:09:22
阅读次数:
742
一、基本概念 Java容器类类库的用途是“持有对象”,并将其划分为两个不同的概念: 1)Collection:一个独立元素的序列,这些元素都服从一条或者多条规则。 List必须按照插入的顺序保存元素,而set不能有重复的元素。Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)。 ...
分类:
编程语言 时间:
2017-02-25 11:51:54
阅读次数:
260
线程调度中的方法: 同步问题Java的解决方案: 同步方法: synchronized 方法声明{ } 同步块: synchronized (资源对象){ //需要进行同步的方法 } 注:当线程进入同步方法的时候,会获取同步方法所属的对象的锁,一旦获取对象的锁,则其他线程不能执行被锁对象的其他同步的 ...
分类:
编程语言 时间:
2017-02-21 17:33:02
阅读次数:
177
package com.java.juc; /** * 题目:判断打印 "one" or "two" * * 1.两个普通同步方法,两个线程 ,标准打印,打印?// one two * 2.新增Thread.sleep(3000) 给getOne() 打印? // 3s 后打印 one two * ...
分类:
编程语言 时间:
2017-02-19 23:50:49
阅读次数:
220
1 同步方法和同步代码块的区别是什么? 答: 同步方法的锁是当前类的对象,同步代码块的锁可以自定义,同步方法锁的范围较大,对性能的影响比较大,因此代码中尽量用同步代码块。 2 什么是死锁(deadlock)? 答:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作 ...
分类:
编程语言 时间:
2017-02-19 13:58:27
阅读次数:
197