Java线程
文章平均质量分 86
tiantongxa
这个作者很懒,什么都没留下…
展开
-
(1)传统线程技术回顾
1,java中线程的创建可以有两种方法:1、继承Thread类 2、实现Runnable接口两者区别:(1)、继承Thread类创建线程的方法, 在继承了Thread类之后, 不能再继承其他的方法, (在java中支持单继承),这样灵活性就不如实现Runnable接口来创建线程的方法了;(2)、使用实现Runnable接口来创建线程可以达到资源共享!(继承Threa转载 2012-06-01 12:48:35 · 254 阅读 · 0 评论 -
(13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
首先复习一下:1,内部类的实例方法不能在静态中创建。2,成员变量 在什么情况情况下才有值啊?在创建了类的实例对象的时候,才分配空间。这时,就需要一个构造方法来进行赋值。3,static{ }这种语法,不需要创建实例对象 就可以运行,而bq1,bq2 是对象创建后的成员变量,对象里面的变量,所以不可应用静态代码块。 要用 这种匿名构造方法{转载 2012-06-01 13:00:22 · 615 阅读 · 0 评论 -
(11)java5的Semaphere、CyclicBarrier同步工具
java.util.concurrent 类 Semaphorejava.lang.Object java.util.concurrent.Semaphore所有已实现的接口: Serializable public class Semaphoreextends Objectimplements Serializable一个计数信号量。从概念上讲,信号转载 2012-06-01 12:54:45 · 207 阅读 · 0 评论 -
(5)ThreadLocal类及应用技巧---- 线程范围内共享变量
java.lang 类 ThreadLocaljava.lang.Object java.lang.ThreadLocal直接已知子类: InheritableThreadLocal public class ThreadLocalextends Object该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物转载 2012-06-01 12:51:08 · 400 阅读 · 0 评论 -
(8)java5线程 Callable与Future的应用
Callable和Future Callable接口定义了一个call方法可以作为线程的执行体,但call方法比run方法更强大: A、call方法可以有返回值 B、call方法可以申明抛出异常 Callable接口是JDK5后新增的接口,而且不是Runnable的子接口,所以Callable对象不能直接作为Thread的target。转载 2012-06-01 12:52:49 · 219 阅读 · 0 评论 -
(4)传智播客_张孝祥_线程范围内共享变量的概念与作用
[java] view plaincopyprint?package com.itm.thread; import java.util.Random; public class ThreadScopeShareData { private static int data = 0;//定义一个全局变量。转载 2012-06-01 12:50:29 · 4504 阅读 · 0 评论 -
(2)传统定时器技术回顾 张孝祥老师经典讲解总结
1,第一种:每隔多少时间爆炸一次,只爆炸一次,以后就不爆炸了。[java] view plaincopyprint?import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class TraditionalTi转载 2012-06-01 12:49:09 · 5272 阅读 · 0 评论 -
(9)java5的线程【锁lock】与【读写锁_以及模拟缓存(妙用)】技术
同步锁(Lock) 通常认为:Lock提供了比synchronized方法和synchronized代码块更广泛的锁定操作,Lock更灵活的结构,有很大的差别,并且可以支持多个Condition对象 Lock是控制多个线程对共享资源进行访问的工具。通常,锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁, 线程开始访问共享资源之前应先获得Loc转载 2012-06-01 12:53:23 · 360 阅读 · 0 评论 -
(6)多个线程 之间共享数据的方式探讨(设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1 )
如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享的数据,例如 买票系统就是那么做的。[java] view plaincopyprint?package com.itm.thread; public class MultiThreadShareData {转载 2012-06-01 12:51:34 · 322 阅读 · 0 评论 -
(12)java5的CountDownLatch、Exchanger同步工具
【1】CountDownLatchjava.util.concurrent 类 CountDownLatchjava.lang.Object java.util.concurrent.CountDownLatchpublic class CountDownLatchextends Object一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个转载 2012-06-01 12:55:21 · 189 阅读 · 0 评论 -
(10)java5条件阻塞Condition的应用<包含阻塞队列知识>
java.util.concurrent.locks 接口 Condition所有已知实现类: AbstractQueuedLongSynchronizer.ConditionObject, AbstractQueuedSynchronizer.ConditionObject public interface ConditionCondition 将 Obj转载 2012-06-01 12:54:15 · 245 阅读 · 0 评论 -
(7)java5线程并发库的应用(线程池)
[java] view plaincopyprint?package com.itm.thread; [java] view plaincopyprint?import java.util.concurrent.ExecutorService; import java.util.concurrent.Exe转载 2012-06-01 12:52:22 · 882 阅读 · 0 评论 -
(3)传统线程互斥技术 synchronized 经典解析。【线程同步】 外加【内部类与外部类 】
(1)首先回顾:内部类与外部类点击打开链接(2)线程同步(这一段文字源于借鉴) 当多个线程访问同一个数据时,非常容易出现线程安全问题。 这时候就需要用线程同步 Case:银行取钱问题,有以下步骤: A、用户输入账户、密码,系统判断是否登录成功 B、用户输入取款金额 C、系统判转载 2012-06-01 12:49:45 · 289 阅读 · 0 评论 -
(14)多线程与并发库之java5同步集合类的应用【包含jdk1.5新特性 ConcurrentHashMap】
第一部分:常用的集合类ArrayList、Map等在多线程操作同一对象时会发生不同步的线程而造成数据读取和写入错误;通常都是采用synchronized修饰符或Lock将那些方法括起来来确保它们在执行时不会被其他线程打扰;java5线程并发库为我们提供了一些相对于普通集合类的线程安全类,来自动解决线程同步的问题,如ConcurrentHashMap、ConcurrentSkipListMa转载 2012-06-01 13:00:56 · 428 阅读 · 0 评论