
多线程
文章平均质量分 81
hanruikai
aaa
展开
-
java并发编程之synchronization初试
1、概念Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个sy原创 2012-04-20 17:29:06 · 3480 阅读 · 0 评论 -
java多线程那些事之一
1. Callable 接口 获取线程执行状态(get、get(long timeout)),取消线程(cancel(boolean mayinterruptifrunning)),isCancel,isDone等。1. 实现callable 接口,2. 创建线程池,submit thread如下所示: Future processF原创 2016-04-07 15:58:47 · 2965 阅读 · 0 评论 -
CAS
Compare And Swap CAS 指的是现代 CPU 广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。这个指令会对内存中的共享数据做原子的读写操作。简单介绍一下这个指令的操作过程:首先,CPU 会将内存中将要被更改的数据与期望的值做比较。然后,当这两个值相等时,CPU 才会将内存中的数值替换为新的值。否则便不做操作。最后,CPU 会将旧的数值返回。这一系列的操作转载 2016-06-13 16:33:01 · 437 阅读 · 0 评论 -
java多线程那些事之二Cyclincbarrier和countdownlatch
1. CyclicBarrierpublic class JavaCyclicBarrierExample { public static void main(String[] args) { //3 threads are part of the barrier, ServiceOne, ServiceTwo and this main thread calling th原创 2016-04-11 15:28:05 · 622 阅读 · 0 评论 -
java多线程那些事之并发集合
When you need to work with data collections in a concurrent program, you must be very careful with the implementation you choose. Most collection classes are not ready to work with concurrent applicat原创 2016-04-12 14:49:47 · 509 阅读 · 0 评论 -
Java ThreadLocal的使用
原文链接 作者: Jakob Jenkov 译者: 林威建[weakielin@gmail.com]Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。如何创建ThreadLocal变量以下代码展示了如何创转载 2015-04-30 14:06:28 · 777 阅读 · 0 评论 -
一分钟教你知道乐观锁和悲观锁的区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人转载 2015-04-20 17:43:34 · 679 阅读 · 0 评论 -
What is volatile variable in Java - When to use
volatile variable in Java is a special variable which is used to signal threads, compiler that this particular variables values is going to be updated by multiple thread inside Java application. B转载 2015-03-31 15:11:50 · 589 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java转载 2015-03-31 15:09:24 · 489 阅读 · 0 评论 -
有三个线程ID分别是A、B、C,请有多线编程实现,在屏幕上循环打印10次ABCABC
package com.thread;public class TestThread { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub PrintTask print原创 2012-04-25 22:03:21 · 2971 阅读 · 2 评论 -
java并发之EDT测试
测试代码如下:1、耗时计算没有单独起线程处理,耗时计算在EDT线程执行,导致界面没有响应,处于卡死状态package thread;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.concurrent.ExecutorService;impor原创 2012-04-24 17:41:17 · 1793 阅读 · 1 评论 -
java并发编程之同步容器
1、同步容器包括两部分:一个是vector,一个是hashtable,其他容器类如果需要同步,可以调用Collections.synchronizedXXX接口,成为同步容器类,接口如下所示:2、同步容器的问题 同步的容器是线程安全的,但是如果对同步容器进行复合操作,则会出现问题,复合操作主要包括:迭代(反复获取元素,直到获取容器的最后一个元素)、导航、以及条件元素,比原创 2012-04-25 10:39:22 · 1855 阅读 · 0 评论 -
主线程等待所有子线程执行完毕后再继续的问题
1. join 方法public class WorkThread extends Thread { @Override public void run() { try { System.out.println(getName() + "run start."); //模拟完成子任务执行的时间转载 2017-11-08 16:51:10 · 2468 阅读 · 0 评论