多线程开发可以更好的发挥多核cpu性能,常用的多线程设计模式有:Future、Master-Worker、Guard Susperionsion、不变、生产者-消费者 模式; jdk除了定义了若干并发的数据结构,也内置了多线程框架和各种线程池; 锁(分为内部锁、重入锁、读写锁)、ThreadLoca ...
分类:
其他好文 时间:
2017-11-02 00:59:23
阅读次数:
175
简介: 等待通知机制的实现 当interrupt()方法遇到wait()方法 只通知一个线程 唤醒所有线程 方法wait(long)的使用 通知过早 通知过早,wait线程还没有进入wait状态,其它线程已经进行了notify,不会产生影响。 生产者与消费者模式 假死 一个生产者多个消费者——操作栈 ...
分类:
编程语言 时间:
2017-10-24 19:35:28
阅读次数:
244
在阻塞模式下,在I/O操作完成前,执行的操作函数将一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反,在非阻塞模式下,套接字函数立即返回,而不管I/O是否完成。 #生产者和消费者模式 ## 服务器端的简化形式(#这套流程需要完全背诵#) #完整代码# ...
1 package com.java.concurrent; 2 3 import java.util.concurrent.locks.Condition; 4 import java.util.concurrent.locks.Lock; 5 import java.util.concurren... ...
分类:
其他好文 时间:
2017-10-17 15:20:28
阅读次数:
146
进程 守护进程 主进程创建守护进程 守护进程(太监)会在主进程(皇帝)代码执行结束后就终止(不管守护进程运行到哪都直接结束) 守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have childre ...
分类:
编程语言 时间:
2017-10-11 20:32:50
阅读次数:
1619
Handler的实例化 在安卓开发中,经常会用到Handler将任务提交到指定线程(例如主线程)去执行或者让其延迟执行。Handler的构造函数有多种重载形式,但最终都调用到如下两种之一: 可以看到:这两个构造函数的区别只是Looper的获取方式不一样,当未指定Looper时,Handler内部会通 ...
分类:
移动开发 时间:
2017-10-09 00:24:04
阅读次数:
257
1、Master-Worker模式 (1)、定义理解: Master-Worker是将串行处理,变为并行处理。有很多的Worker处理串行任务获得子结果集,那么需要个Master来处理这些子结果集,获取和串行相同的结果集。 (2)、角色有 Worker:工作者,处理单个任务。 Master:老板,任 ...
分类:
其他好文 时间:
2017-10-07 23:36:58
阅读次数:
425
1、并发List 在List下中有ArrayList 、LinkedList 、Vector 三种数据结构,其中Vector属于线程安全的。 在List下还有CopyOnWriteArrayList类实现的List接口,它也是线程安全的。 CopyOnWriteArrayList与Vector进行对 ...
分类:
编程语言 时间:
2017-10-04 17:32:17
阅读次数:
157
前言: 生产者和消费者模式是我们在学习多线程中很经典的一个模式,它主要分为生产者和消费者,分别是两个线程, 目录 一:生产者和消费者模式简介 二:生产者和消费者模式的实现 声明:本例来源于java经典著作:《Think in java》,接下来将会采用本例子将会借鉴其中的案例进行分析 首先我们来设想 ...
分类:
编程语言 时间:
2017-10-03 00:52:37
阅读次数:
394
生产者和消费者不能同时进行,这里要注意没有实现读写分离,是有界的阻塞的队列,可以用来实现生产者和消费者模式 我们来看下面的代码: 程序运行的结果是: Exception in thread "main" java.lang.IllegalStateException: Queue full at j ...
分类:
编程语言 时间:
2017-09-30 17:49:16
阅读次数:
283