
多线程
文章平均质量分 80
SunnyNull
你花六块八块买个盒饭吃,觉得很节省,有人在路边买了七毛钱馒头吞咽后步履匆匆;
你八点起床看书,觉得很勤奋,上微博发现曾经的同学八点就已经在面对繁重的工作;
你周六补个课,觉得很累,打个电话才知道许多朋友都连续加班了一个月。
亲爱的,你真的还不够苦,不够勤奋和努力。
展开
-
线程同步的五种方法
线程同步的方式包括:互斥锁、读写锁、条件变量、信号量和令牌。 互斥锁和读写锁:提供对临界资源的保护,当多线程试图访问临界资源时,都必须通过获取锁的方式来访问临界资源。(临界资源:是被多线程共享的资源)当读写线程获取锁的频率差别不大时,一般采用互斥锁,如果读线程访问临界资源的频率大于写线程,这个时候采用读写锁较为合适,读写锁允许多个读线程同时访问临界资源,读写线程必须互斥访问临界资源。读写转载 2016-09-25 16:05:29 · 801 阅读 · 0 评论 -
多线程--同步互斥&生产者消费者(一)
一、线程同步&互斥 在实际应用中,多个线程往往会共享一些数据,并且各个线程之间的状态和行为是相互影响的。线程之间的影响有两种,一种是线程间的互斥,另一种是线程间的同步。 ---线程安全(Thread-Safe) ---线程间的互斥 ---线程间的同步 线程之间的关系大致可以分为两类 1、线程之间通过对资源的竞争,包括共享的数据和硬件资源,所产生的相互制约关系,这类线程间的主转载 2016-09-25 13:56:34 · 1175 阅读 · 0 评论 -
多线程--线程间通信(二)
上篇说到了线程间的同步互斥和比较经典的消费者生产者问题,其中涉及到了线程间通信和线程锁这两个概念,下面就来谈谈这两个概念和具体实现方法。 一、线程状态 正式开始之前,先来普及线程的几种状态: 1. 新建状态(New):新创建了一个线程对象。 2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池转载 2016-09-25 13:57:57 · 351 阅读 · 0 评论 -
线程通信机制---共享内存:消息传递
在并发编程中,我们必须考虑的问题时如何在两个线程间进行通讯。这里的通讯指的是不同的线程之间如何交换信息。 目前有两种方式: 1、共享内存 2、消息传递(actor 模型) 共享内存 共享内存这种方式比较常见,我们经常会设置一个共享变量。然后多个线程去操作同一个共享变量。从而达到线程通讯的目的。例如,我们使用多个线程去执行页面抓取任务,我们可以使用一个共享变量count来记录任务原创 2016-09-25 17:27:08 · 2528 阅读 · 0 评论 -
Java的四种线程池以及参数介绍
Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。转载 2016-10-05 19:57:45 · 973 阅读 · 0 评论