
java多线程高并发
houyidg
这个作者很懒,什么都没留下…
展开
-
多线程编程3.3-----synchronzied关键字为类名.class
package zhu;/*** * 目的: * 保证线程安全 加上synchronized(多线程操作的对象)锁 * 静态方法 synchronized 隐含的锁标识是类名.class * 以下同步其实是在相同时间间隔内同步 所有需要在一个线程执行前延迟几分钟,并没有正真的同步、 * 特点: * 同种对象的两种方法加相同的锁 两个线程执行相应的方法 使多线程安全原创 2014-09-01 15:21:15 · 482 阅读 · 0 评论 -
两个线程执行生产 * 两线程执行消费 * 依次交替循环
import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/* * 两个线程执行生产 * 两线程执行消费 * 依次交替循环 * lock的方法(类的方法) 针对多翻译 2014-09-01 16:42:18 · 616 阅读 · 0 评论 -
多线程编程1.2-----Map封装各线程独享数据
package zhu;/** * 需求: * 为保证同一个线程调用的函数所使用的资源相同 * 也就是 线程独享自己的数据 比如:银行转账 同一线程内共享连接,不同线程独立连接 *方案: * 使用map集合封装 线程的变量 和 线程对应的名字 * 可以使用ThreadLocal类解决 */import java.util.HashMap;i原创 2014-09-01 14:52:59 · 521 阅读 · 0 评论 -
多线程编程8---ArrayBlockingQueue解决子循环5次主循环10次 一次交替10次
package zhu.suo;import java.util.concurrent.ArrayBlockingQueue;/** * 子线程循环10次,接着主线程循环20次,接着又回到子线程循环10次,主线程循环20次,依次交替循环5次 * 使用阻塞队列:ArrayBlockingQueue类 方法 put(e) take() 若不满足条件则线程阻塞 *原创 2014-09-01 16:07:15 · 1415 阅读 · 0 评论 -
多线程编程3.2-------synchronzied2
package zhu;/*** * 目的: * 保证线程安全 加上synchronized(多线程操作的对象)锁 * 对方法枷锁 锁的标识就是this * 以下同步其实是在相同时间间隔内同步 所有需要在一个线程执行前延迟几分钟,并没有正真的同步 * 特点: * 同种对象的两种方法加相同的锁 两个线程执行相应的方法 使多线程安全 * */public c原创 2014-09-01 15:08:44 · 423 阅读 · 0 评论 -
多线程编程1-----ThreadLocal
package zhu;/* * 要求: * 利用Thread的局部变量类ThreadLocal 封装数据 * 然后再赋值数据 实现一个线程有多分相同的变量,而且各线程之间的变量值互不影响 * 官方应用场景: * 在Java的多线程编程中,为保证多个线程对共享变量的安全访问,通常会使用synchronized来保证同一时刻只有一个线程对共享变量进行操作。 * 这种情况下原创 2014-09-01 14:46:36 · 358 阅读 · 0 评论 -
多线程编程5----一个线程执行完返回值CallableAndFuture.java
package zhu.ThreadPools;import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.CompletionService;import java.util.concurrent.ExecutionException;import j原创 2014-09-01 15:54:52 · 410 阅读 · 0 评论 -
多线程编程7---java5并发库集合
package zhu.suo;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.concurrent.CopyOnWriteArrayList;/* * 在一般的集合遍历中 增删集合会报错 * 除非使用java5 封装的并发库集合 ...原创 2014-09-01 16:03:08 · 462 阅读 · 0 评论 -
多线程编程9----使用读写锁模拟hibernate缓存Demo
package zhu.suo;import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantLock;import java.util.concurrent.原创 2014-09-01 16:11:42 · 715 阅读 · 0 评论 -
多线程编程10----condition同步工具类的使用
package zhu.suo;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/* * 要求:1,2,3兄弟,1循环5次,2循环10次,3循环15次原创 2014-09-01 16:12:46 · 392 阅读 · 0 评论 -
多线程编程14---Lock类代替传统synchronzied类
package zhu.suo;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/* * java5lock代替传统的synchronized * */public class LockTest {public static vo原创 2014-09-01 16:22:59 · 478 阅读 · 0 评论 -
多线程面试题1
package zhu.test;/** * 子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,主线程循环100次,依次交替循环 * 50次 * * @author nn *思想: * 把互斥资源封装到一个类中 */public class LoopTest {public static void main(String[] a原创 2014-08-18 16:47:45 · 365 阅读 · 0 评论 -
两种多线程操作共享数据的方法
package zhu.test;/** * 需求: * 使同一份数据分别进行 加1 减1 交替出现 10次 * @author nn * */public class ThreadShareDataDemo1 {public static void main(String[] args) {final ShareDATA DataObj= new Sh原创 2014-08-18 18:12:09 · 465 阅读 · 0 评论 -
AtomicIntegerFieldUpdater多线程原子类的使用
package zhu.test;/** * 方法一:包装类的使用 * 要求: 在jdk5之后出现线程安全类 比如AtomicInteger,...AtomicIntegerFieldUpdater ,使用此类保证资源的互斥性 */import java.util.concurrent.atomic.*; class Container { publ原创 2014-08-18 20:06:12 · 498 阅读 · 0 评论 -
Java多线程之锁
前言Java 锁也分很多中。。但这里介绍synchronize和lock区别1、synchronzie是基于jvm层面,lock是基于代码 2、synchronize块中出现异常jvm会直接释放锁,而lock出现异常必须在finally块中释放锁 3、少量进程之间的并发使用synchronize效率高,由于lock伸缩性比较强,处理大量并发效果好!原创 2015-07-10 17:56:28 · 462 阅读 · 0 评论 -
关于字符串组合等地址问题
public class Test {public static void main(String[] args) {String a = "2"+"1";String b = "2"+"1";//在编译前 优化为"12"System.out.println(("2"+"1")==("2"+"1"));System.out.println(a==b);System原创 2014-09-01 16:42:33 · 384 阅读 · 0 评论 -
多线程编程10.1-----Condition解决面试题
package zhu.suo;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class CondotionDemo {pub原创 2014-09-01 16:11:40 · 528 阅读 · 0 评论 -
多线程编程12-----CyclicBarrier同步工具类
package zhu.suo;import java.util.Random;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import ja原创 2014-09-01 16:19:13 · 427 阅读 · 0 评论 -
多线程编程面试题2
package zhu.suo;/* * 2.十个线程乱序执行一个打印,每个打印需要一秒 * */import java.util.concurrent.Semaphore;import java.util.concurrent.SynchronousQueue;public class Test2 {public static void main(St翻译 2014-09-01 16:41:08 · 517 阅读 · 0 评论 -
多线程编程15-----Semaphore类限制并发线程数
package zhu.suo;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;import java.util.concurrent.locks.ReentrantLock;原创 2014-09-01 16:31:30 · 590 阅读 · 0 评论 -
多线程编程面试题1
package zhu.suo;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/*1.四个线程共用4秒打印出16条日志 * * 解析: * 在print方法中 * 第一秒 四个进程同时带一个数据进入 * 同样。。 * */翻译 2014-09-01 16:38:33 · 433 阅读 · 0 评论 -
多线程编程4---面试题解法3
package zhu.test;/** * 需求: * 使同一份数据分别进行 加1 减1 交替出现 10次 * @author nn * */public class ThreadShareDataDemo1 {public static void main(String[] args) {final ShareDATA DataObj= new Sh原创 2014-09-01 15:42:47 · 382 阅读 · 0 评论 -
多线程编程11-----CountDownLatch同步工具类的使用
package zhu.suo;import java.util.concurrent.CountDownLatch;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/*原创 2014-09-01 16:14:38 · 387 阅读 · 0 评论 -
多线程编程13-----Exchanger同步工具类实现两线程数据交换
package zhu.suo;import java.util.concurrent.Exchanger;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/* * 两线程之间数据的交换 * */public class ExchangerDemo原创 2014-09-01 16:20:51 · 412 阅读 · 0 评论 -
多线程编程面试题3
package zhu.suo;/* * 3.输入 1,2 2,3 2,5 3,4输出 1,2--时间1 2,3--时间1 3,4--时间1 2,5--时间2四个线程同时执行//注意点: * 在System.currentMilions/1000获取时间中 出现 *翻译 2014-09-01 16:39:12 · 509 阅读 · 0 评论 -
多线程编程3.1-----synchronized关键字保证多线程互斥
package zhu;/*** * 目的: * 保证线程安全 加上synchronized(多线程操作的对象)锁 * 特点: * 同种对象的一种方法, 用多个线程执行 给方法枷锁 * @author nn * */public class TraditionalThreadSynchronized2 {public static void main原创 2014-09-01 15:08:25 · 381 阅读 · 0 评论 -
多线程编程3-----演示多线程未同步问题
package zhu;/*** * 目的: * 为了演示多线程不安全问题 * 出现打印不完全现象 * @author nn * */public class TraditionalThreadSynchronized {public static void main(String[] args) {new TraditionalThreadSync原创 2014-09-01 15:04:10 · 423 阅读 · 0 评论 -
多线程编程4------面试题使用资源互斥类AtomicInteger
package zhu.test;/** * 需求: * 使同一份数据分别进行 加1 减1 交替出现 10次 * 方法二 * 要求: 在jdk5之后出现线程安全类 比如AtomicInteger,...AtomicIntegerFieldUpdater ,使用此类保证资源的互斥性 */import java.util.concurrent.atomic.*;原创 2014-09-01 15:41:24 · 571 阅读 · 0 评论 -
多线程编程6-----Executors的使用
package zhu.ThreadPools;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;public class Demo1 {public static v原创 2014-09-01 16:00:21 · 375 阅读 · 0 评论 -
多线程编程2-----TimerTask定时器类的使用
package zhu;import java.util.Date;import java.util.Timer;import java.util.TimerTask;/** * * 连环炸弹 * 需求: * 分别每隔 2 秒 、3 秒循环交替爆炸 * 特点: * 不使用循环语句,使用递归可以完成任务的交替循环 * @author n原创 2014-09-01 14:54:01 · 388 阅读 · 0 评论 -
多线程编程4-------面试题增加信号
package zhu.test;/** * 需求: * 使同一份数据分别进行 加1 减1 交替出现 10次 * @author nn * */public class CopyOfThreadShareDataDemo2 {static int data=0;public static void main(String[] args) {Data data原创 2014-09-01 15:30:48 · 367 阅读 · 0 评论 -
java线程解析
原创 2016-08-26 02:29:44 · 366 阅读 · 0 评论