下面就一些java的一些基本问题进行解释。其中蓝色部分为handsomecui的主观看法 一.synchronized(obj)里面的参数怎么解释? synchronized的参数代表的是“对象锁”代表的是不同的线程在synchronized块里,同时只有一个线程能执行该代码块,而类的不同实例之间是 ...
分类:
编程语言 时间:
2017-06-24 22:48:38
阅读次数:
187
1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRI ...
分类:
编程语言 时间:
2017-06-20 16:17:28
阅读次数:
177
sleep()和wait()的区别 sleep是线程类的方法,它会让出cpu去执行其他线程,当指定时间过后,会从新回到此线程上,但是虽然让出了CPU ,并不会释放对象锁, wait是object的方法,它会让出同步锁,等待其他线程调用notify()方法后,才进入对象锁的争夺中。 get load的 ...
分类:
编程语言 时间:
2017-06-12 19:47:50
阅读次数:
178
1.synchronized synchronized:实现线程同步,同步可以是某一方法或某一个代码块,获取对象锁,其他线程阻塞。 使用wait()释放对象锁,线程进入等待状态,wait()后面的代码将等待线程再次被唤醒时执行。 使用notify()随机唤醒一个处于wait()方法的线程,重新获取对 ...
分类:
编程语言 时间:
2017-06-12 11:51:29
阅读次数:
148
阻塞状态: sleep 可中断利用 interrupt方法 wait IO 不可中断 I:关闭底层资源 II:new I O 任务试图在某个对象上调用其同步控制方法,但是对象锁被另一个任务获取 不可中断 Executor.shutdownNow() 发送一个interrupt() 调用给它启动的所有 ...
分类:
编程语言 时间:
2017-06-11 19:17:13
阅读次数:
181
线程方法介绍: 1、sleep():使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据,注意该方法要捕捉异常。 2、join():join方法使调用该方法的线程在此之前执行完毕,也 ...
分类:
编程语言 时间:
2017-06-10 15:27:06
阅读次数:
161
1.demo 说明:代码中通过 printNum 方法传入参数判断 a、b 分别对 num 这个参数的值进行了修改。 thread -> A over thread -> B over a休眠2秒后 str:b num:200 str:a num:1000 描述: synchronized 结果中并 ...
分类:
编程语言 时间:
2017-06-07 00:42:57
阅读次数:
336
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17288243 加锁(synchronized同步)的功能不仅仅局限于互斥行为,同时还存在另外一个重要的方面:内存可见性。我们不仅希望防止某个线程正在使用对象状态而另一个线程在同时修改该状态, ...
分类:
编程语言 时间:
2017-05-30 13:26:29
阅读次数:
138
多线程常用的一些方法: wait(),wait(long),notify(),notifyAll()等这些方法是当前类的实例方法,wait() 是使持有对象锁的线程释放锁;wait(long)是使持有对象锁的线程释放锁时间为long(毫秒)后,再次获得锁,wait()和wait(0)等价;notif ...
分类:
编程语言 时间:
2017-05-28 18:52:44
阅读次数:
177
众所周知,synchronized可修饰方法和代码块,可作用于类或者对象。 当修饰代码块时,synchronized(object) 作用于对象,只约束该对象。 synchronized(class)作用于类,约束类所有的对象。 修饰方法时,synchronized 修饰static方法时,作用于类 ...
分类:
编程语言 时间:
2017-05-22 21:18:24
阅读次数:
198