随笔分类 -  Java并发

上一页 1 2
Java并发
java多线程之计算数量
摘要:package Thread.Abort; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; //计数类 class Count {//DATA private int count = 0; private Random rand = new Random(47); // public synchronized int increment() { int temp = count; if (rand.nextBoolean()) Thread.yield(); return (count = ++te 阅读全文
posted @ 2014-05-27 20:50 上校 阅读(9132) 评论(0) 推荐(0) 编辑
深入研究java.lang.ThreadLocal类(转)
摘要:引用:http://lavasoft.blog.51cto.com/62575/51926/ 一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。 从线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收(除非存在对这些副本的其他引用)。 阅读全文
posted @ 2014-05-27 00:27 上校 阅读(296) 评论(0) 推荐(1) 编辑
java多线程之ThreadLocal
摘要:ThreadLocal保证数据同步 package Thread.Common; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; class Accessor implements Runnable { private final int id; public Accessor(int idn) { id = idn; } 阅读全文
posted @ 2014-05-27 00:18 上校 阅读(673) 评论(0) 推荐(0) 编辑
java多线程之AtomicInteger
摘要:AtomicInteger原子操作实现同步 package Thread.Common; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; 阅读全文
posted @ 2014-05-26 23:16 上校 阅读(6594) 评论(0) 推荐(0) 编辑
Java多线程之简单的线程同步实例
摘要:数据类: package Thread.MyCommon; public class Data { public int num = 0; public synchronized int getEven() { ++num; Thread.yield();//让另外线程先执行,加大测试效果几率 ++num; return num; } } 阅读全文
posted @ 2014-05-26 21:06 上校 阅读(8829) 评论(0) 推荐(0) 编辑
Java多线程之捕获异常
摘要:1.主线程不能捕获到子线程的异常 package Thread.Exection; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ExeceptionThread implements Runnable { @Override public void run() { throw new RuntimeException(); } 阅读全文
posted @ 2014-05-25 23:49 上校 阅读(13370) 评论(0) 推荐(0) 编辑
Java多线程之join
摘要:将另外一个线程join到当前线程,则需要等到join进来的线程执行完才会继续执行当前线程。 package Thread.join; class Sleeper extends Thread { private int duration; public Sleeper(String name, int sleepTime) { super(name); duration = sleepTime; start(); } 阅读全文
posted @ 2014-05-25 15:01 上校 阅读(6725) 评论(0) 推荐(0) 编辑
Java多线程之后台线程不执行finally
摘要:后台线程不执行finally package wzh.daemon; import java.util.concurrent.TimeUnit; class ADaemon implements Runnable { @Override public void run() { 阅读全文
posted @ 2014-05-25 13:42 上校 阅读(3192) 评论(0) 推荐(0) 编辑
Java多线程之DaemonThreadFactory
摘要:通过DaemonThreadFactory创建后台线程池 package wzh.daemon; import java.util.concurrent.ThreadFactory; public class DaemonThreadFactory implements ThreadFactory { @Override public Thread newThread(Runnable r) { Thread t = new Thread(r); t.setDaemon(true); return t; 阅读全文
posted @ 2014-05-25 13:26 上校 阅读(3172) 评论(0) 推荐(0) 编辑
Java多线程之后台线程
摘要:将线程设置成后台线程Daemons 主线程结果后,后台线程将自动结果。 package wzh.test; import java.util.concurrent.TimeUnit; class SimpleDaemons implements Runnable{ @Override public void run() { try { while (true) { 阅读全文
posted @ 2014-05-25 12:26 上校 阅读(1306) 评论(0) 推荐(0) 编辑
java多线程之从任务中获取返回值
摘要:package wzh.test; import java.util.ArrayList; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; class TaskWithResult implements Callable{ private int id; public TaskWithResult(int id){ this.id=id; } @Override public String call() throws Exception { return "result of TaskWithResult "+id; } } 阅读全文
posted @ 2014-05-25 10:46 上校 阅读(1896) 评论(0) 推荐(0) 编辑
java多线程总结
摘要:原文:http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html 在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。 对于直接继承Thread的类来说,代码大致框架是: 阅读全文
posted @ 2014-05-25 09:46 上校 阅读(482) 评论(0) 推荐(1) 编辑
java之生产者与消费者
摘要:package com.produce; import java.util.LinkedList; import java.util.Queue; /*@author shijin * 生产者与消费者模型中,要保证以下几点: * 1 同一时间内只能有一个生产者生产 生产方法加锁sychronized * 2 同一时间内只能有一个消费者消费 消费方法加锁sychronized * 3 生产者生产的同时消费者不能消费 生产方法加锁sychronized * 4 消费者消费的同时生产者不能生产 消费方法加锁sychronized * 5 共享空间空时消费者不能继续消费 消费前循环判断是否为空,空的话将该线程wait,释放锁允许其他同步方法执行 * 6 共享空间满时生产者不能继续生产 生产前循环判断是否为满,满的话将该线程wait,释放锁允许其他同步方法执行 */ 阅读全文
posted @ 2014-05-24 23:35 上校 阅读(1654) 评论(0) 推荐(0) 编辑

上一页 1 2