- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 sleep(),join(),yield()的区别以及wait()和notify()、notifyAll()以及run和start()
1、sleep()使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执行
2014-09-21 11:45:19 662
原创 Java线程优先级
package Multithreading01;/* * 线程优先级 * .setPriority() 优先级 */public class PriorityDemo { public static void main(String[] args) { //优先级最高的线程 Thread max = new Thread(new Runnable(){ @Overrid
2014-09-21 11:34:27 526
原创 Java的前台线程与守护线程(后台线程)
守护线程(后台线程)当一个进程中的所有前台线程运行完毕后,所有后台线程均要强制结束.进程的结束:当一个进程中的所有线程结束后,该进程结束.
2014-09-21 10:10:59 853
原创 关于Java多线程和并发运行的学习(五)——并发 Collection
并发 Collection:除队列外,此包还提供了设计用于多线程上下文中的 Collection 实现:ConcurrentHashMap、ConcurrentSkipListMap、ConcurrentSkipListSet、CopyOnWriteArrayList 和CopyOnWriteArraySet。当期望许多线程访问一个给定 collection 时,ConcurrentHas
2014-09-14 15:54:35 677
原创 关于Java多线程和并发运行的学习(五)——阻塞队列
* 阻塞队列: * (查询BlockingQueue的API文档) * 阻塞队列与Semaphore有些相似,但也不同,阻塞队列是一方存放数据,一方释放数据, * Semaphore通常则是由同一方设置和释放信号量。
2014-09-14 14:54:20 537
原创 关于Java多线程和并发运行的学习(四)——之Exchanger
可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给 exchange 方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象。Exchanger 可能被视为 SynchronousQueue 的双向形式。Exchanger 可能在应用程序(比如遗传算法和管道设计)中很有用。
2014-09-14 13:53:11 512
原创 关于Java多线程和并发运行的学习(四)——之CyclicBarrier
CyclicBarrier: 表示大家彼此等待,集合好后在开始出发,分散活动后又在指定地点集合碰面,这就好比 整个公司的人员利用周末时间集体郊游一样,先各自从家出发到公司集合后,再同时 出发到公园游玩,在指定地点集合后再同时开始就餐……
2014-09-13 21:04:15 468
原创 关于Java多线程和并发运行的学习(四)——之Semaphore
Semaphore实现信号灯:Semaphore可以维护当前访问自身的线程个数,并提升了同步机制。 * 使用Semaphore可以控制同时访问资源的线程个数,例如:实现一个文件允许的并发访问数。 * 单个信号量的Semaphore对象可以实现互斥锁的功能,并且可以是由一个线程获得了“锁”, * 再由另外一个线程释放“锁”,这可以应用于死锁恢复的一些场合。
2014-09-13 19:34:53 520
原创 【并发编程】线程范围内的数据共享,ThreadLocal,多线程间的数据共享
这几天生病了,所以学的比较少,只学习了关于线程中的线程范围数据共享,ThreadLocal以及多线程数据共享。在这里记下我的理解和代码,其实理解都写在代码注释里了,个人觉得这样更加适合以后复习。(上一篇我讲的是关于线程的创建,计时器,同步锁,线程间的通信。)第一个,关于线程范围内的数据共享。数据共享,一般是多个事件在串在同一个线程里调用同一个数据。下面一个小例子就可以说
2014-09-09 16:51:35 794
原创 【并发编程】线程的创建,计时器,线程的同步锁
今天又重新把Java中的多线程和并发运行巩固了一次,关于这一点,我稍微总结一点基础的东西。线程的创建首先线程的创建有两种方式:package Multithreading;public class NewThreadDemo { public static void main(String[] args) { /** * 第一种方法 */ // 在Threa
2014-09-07 18:42:52 626
原创 Java中StringBuffer和StringBuilder类总结
String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象,StringBuffer和StringBuilder类功能基本相似。
2014-09-06 13:44:08 497
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人