JAVA多线程
iteye_8560
这个作者很懒,什么都没留下…
展开
-
多线程简单设计
[b]线程直接的通信[/b]:通过管道流进行简单的交互[code="java"]public class ThreadDemo6 { public static void main(String[] args) { PipedOutputStream pos=null; PipedInputStream pis=null; try { pos=new PipedO...原创 2015-09-09 10:53:23 · 84 阅读 · 0 评论 -
控制线程数量之-Semaphore
[b]使用Semaphore的简单例子了解一下Semaphore使用[/b] [code="java"]//这里可能是在一个项目中唯一使用的一个newCachedThreadPool,别的都是new一个fixed的大小 public static ExecutorService exec = Executors.newCachedThreadPool(); private...原创 2016-12-12 12:15:40 · 277 阅读 · 0 评论 -
Callable在多线程合理优化使用
Future对象在执行使用在外线程中还是同步执行[code="java"]public class CallableFutureTest { ExecutorService executor = Executors.newFixedThreadPool(3); @Test //@Ignore public void testCallable() {...原创 2016-12-02 10:32:58 · 3862 阅读 · 0 评论 -
Java多线程设计
操作系统在运行一个程序时候,会首先创建一个进程。如果启动一个java程序就会创建一个java进程。现代操作系统的调度的最小单位是线程,也叫轻量级进程。一个进程中可以创建多个线程。香河县线程都拥有自己各自的计数器,堆栈,和局部变量等属性,并且能够共享访问内存变量。处理器在这些线程上高速切换,让你我感觉到是在并行执行。在java运行时候不只是启动一个main线程运行,请看一下下边的例子[cod...原创 2016-08-12 10:33:14 · 159 阅读 · 0 评论 -
“JUC原子类”之 AtomicLong原子类-02
AtomicLong是作用是对长整形进行原子操作。AtomicLong源码分析(基于JDK1.7.0_40)在32位操作系统中,64位的long 和 double 变量由于会被JVM当作两个分离的32位来进行操作,所以不具有原子性。而使用AtomicLong能让long的操作保持原子型。[code="java"]// 构造函数AtomicLong()// 创建值为initial...原创 2016-08-11 10:21:47 · 103 阅读 · 0 评论 -
“JUC原子类”框架-01
根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类。1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ;3. 引用类型: AtomicReference, AtomicStampedReren...原创 2016-08-11 10:08:11 · 112 阅读 · 0 评论 -
使用多线程拆分文件下载
首先我们从任意的一个地方获得资源,考虑到你的带宽创建线程我们现在创建一个简单的多线程解析资源[code="java"]public class DownLoadRunable implements Runnable { private int threadId; private int startIndex; private int endIndex; private ...原创 2016-04-13 13:59:34 · 271 阅读 · 0 评论 -
多线程死锁问题简单案例
多线程案例其实也就是一句话,我获得一个线程资源不释放,又要获得另一个资源,其他线程也是获得一个不释放,又想获得别的线程。其实最多的就是线程之间的相互调用。[code="java"]/** * 指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 * * @author Janle * */publi...原创 2016-04-08 16:25:20 · 135 阅读 · 0 评论 -
在多线程使用volatile关键字
构建了100个线程, Volatile变量具有 synchronized 的可见性特性,但是不具备原子特性。同时访问操作i,如果i在使用i++时候是对自身变量的操作,实际它这样的操作不是原子操作。下边我们用一段代码试试。[code="java"]/** * Java语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。 其...原创 2016-04-08 16:15:40 · 123 阅读 · 0 评论 -
java线程池
线程执行是好但是线程多了也是会很费空间的所以我们要控制线程的数量引入了线程池。 * 线程并不是越多越好,如果无限制的创建线程 * 那么线程的创建,销毁将会是很大的消耗 * 希望不管执行任务的多少,都用固定的线程来执行 线程不一定是越多越好,我们可以由一个线程执行多个任务。 java.util.concurrent.ExecutorService; java.util.c...原创 2015-09-09 18:30:47 · 95 阅读 · 0 评论 -
线程范围内数据共享
java实现线程范围内数据共享:Thread.crruntThread()使用HashMap经过A,B,C三个模块都是获得同一个值[code="java"]public class ThreadDemo20 { private static HashMap data=new HashMap(); static class A{ public void getD...原创 2015-09-09 16:34:35 · 122 阅读 · 0 评论 -
在多线程使用之ThreadLocal
[code="java"]public class Test { public static ThreadLocal local = new ThreadLocal(); public static ExecutorService service = Executors.newFixedThreadPool(Runtime.getRuntime().availablePro...原创 2017-01-07 19:35:44 · 114 阅读 · 0 评论