![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java多线程
GaoMatrix
这个作者很懒,什么都没留下…
展开
-
Java多线程设计模式详解学习笔记七——Producer-Consumer
public class Main { public static void main(String[] args) { Table table=new Table(3); new MakerThread("MakerThread-1", table, 12345).start(); new MakerThread("MakerThread-2", table, 54345).sta原创 2011-11-17 15:24:00 · 4430 阅读 · 0 评论 -
Java多线程编程总结笔记——二概念与原理
操作系统中线程和进程的概念现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程转载 2011-07-20 14:30:54 · 1147 阅读 · 0 评论 -
Java多线程编程总结笔记——三线程栈模型与线程的变量
要理解线程调度的原理,以及线程执行过程,必须理解线程栈模型。线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶。线程栈的内容是随着程序的运行动态变化的,因此研究线程栈必须选择一个运行的时刻(实际上指代码运行到什么地方)。下面通过一个示例性的代码说明线程(调用)栈的变化过程这幅图描述在代码执行到两个不同时刻1、2时候,虚拟机线程调用栈示意图。当程转载 2011-07-20 15:30:37 · 1029 阅读 · 0 评论 -
Java多线程设计模式详解学习笔记四——Immutable
public class Main { public static void main(String[] args) { Person alice = new Person("Alice", "Alaska"); new PrintPeronThread(alice).start(); new PrintPeronThread(alice).start(); n原创 2011-08-17 11:45:20 · 1156 阅读 · 1 评论 -
Java多线程设计模式详解学习笔记六——Balking
public class Main { public static void main(String[] args) { Data data=new Data("data.txt","(empty)"); new ChangerThread("ChangerThread", data).start(); new SaverThread("SaverThread", data).sta原创 2011-08-18 15:53:56 · 860 阅读 · 0 评论 -
Java多线程设计模式详解学习笔记九——Thread-Per-Message
public class Main { public static void main(String[] args) { System.out.println("Main Begin"); Host host = new Host(); host.request(10, 'A'); host.request(20, 'B'); host.request(30, 'C');原创 2011-11-23 13:24:39 · 3338 阅读 · 0 评论 -
Java多线程编程总结笔记——一多线程基础知识
这是网上一位牛人写的ava多线程编程总结:http://lavasoft.blog.51cto.com/62575/27069,作为初步学习Java多线程编程非常好,现将学习笔记和心得记录下来。 一、认识多任务、多进程、单线程、多线程 以前古老的DOS操作系统(V 6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情。比如你在copy东西的时候不能ren原创 2011-06-28 15:19:00 · 1413 阅读 · 0 评论 -
【转】Java 程序中的多线程
http://www.ibm.com/developerworks/cn/java/multithreading/线程间发信 当线程在继续执行前需要等待一个条件时,仅有 synchronized 关键字是不够的。虽然 synchronized 关键字阻止并发更新一个对象,但它没有实现 线程间发信 。Object 类为此提供了三个函数:wait()、notify() 和 notify转载 2011-07-12 23:16:44 · 834 阅读 · 0 评论 -
【转】编写多线程的 Java 应用程序
http://www.ibm.com/developerworks/cn/java/j-thread/线程是什么?一个程序或进程能够包含多个线程,这些线程可以根据程序的代码执行相应的指令。多线程看上去似乎在并行执行它们各自的工作,就像在一台计算机上运行着多个处理机一样。在多处理机计算机上实现多线程时,它们确实 可以并行工作。和进程不同的是,线程共享地址空间。也就是说,多个线程能转载 2011-07-13 00:05:24 · 878 阅读 · 0 评论 -
Java多线程编程总结笔记——四创建与启动
在调用start()方法之后:发生了一系列复杂的事情,启动新的执行线程(具有新的调用栈);该线程从新状态转移到可运行状态;当该线程获得机会执行时,其目标run()方法将运行。一些常见问题 1、线程的名字,一个运行中的线程总是有名字的,名字有两个来源,一个是虚拟机自己给的名字,一个是你自己的定的名字。在没有指定线程名字的情况下,虚拟机总会为线程指定名字,并且主线程的名字总是mian,非主转载 2011-07-22 15:54:36 · 843 阅读 · 0 评论 -
Java多线程设计模式详解学习笔记二
wait、notify、notifyAll都是Object类的方法wait、notify、notifyAll都是java.lang的Object类的方法,不是Thread类固有的方法,作用分别为:obj.wait()是把现在的线程放到obj的wait set;obj.notify()是从obj的wait set里唤醒一个线程;obj.notifyAll()是唤醒所有在obj的wai原创 2011-08-16 08:13:17 · 941 阅读 · 0 评论 -
Java多线程编程总结笔记——五线程状态的转换
一、线程状态线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。用一个图来描述如下:1、新状态:线程对象已经创建,还没有在其上调用start()方法。2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,转载 2011-07-22 16:29:20 · 1899 阅读 · 0 评论 -
Java多线程编程总结笔记——六线程的同步与锁
同步和锁定:关于锁和同步,有一下几个要点:1)、只能同步方法,而不能同步变量和类;2)、每个对象只有一个锁;当提到同步时,应该清楚在什么上同步?也就是说,在哪个对象上同步?3)、不必同步类中所有的方法,类可以同时拥有同步和非同步方法。4)、如果两个线程要执行一个类中的synchronized方法,并且两个线程使用相同的实例来调用方法,那么一次只能有一个线程能够执行方法,另一转载 2011-08-01 10:46:20 · 1476 阅读 · 0 评论 -
Java多线程设计模式详解学习笔记八——Read-Write Lock Pattern
Read-Write Lock Pattern原创 2011-11-23 13:13:49 · 1195 阅读 · 0 评论 -
什么是守护线程
在Java中比较特殊的线程是被称为守护(Daemon)线程的低级别线程。这个线程具有最低的优先级,用于为系统中的其它对象和线程提供服务。将一个用户线程设置为守护线程的方式是在线程对象创建之前调用线程对象的setDaemon方法。典型的守护线程例子是JVM中的系统资自动回收线程,它始终在低级别的状态中运行,用于实时监控和管理系统中的可回收资源。原创 2011-06-28 15:14:00 · 3059 阅读 · 1 评论 -
Java多线程Synchronized心得
转载:http://www.vanjor.org/blog/2011/04/java-synchronized/两年前,在编写一个多线程采集器的时候,写了一篇心得《Java多线程Synchronized的注意细节》,但是随后的使用中,发现仍然没有完全分清场景与背后原理。现在随着实际应用,终于也有所新的成熟的理解了。Synchronized是java语言级别内置的同步机制转载 2011-07-06 13:58:12 · 6062 阅读 · 0 评论 -
Java多线程设计模式详解学习笔记——Introduction1 Java语言的线程
GUI应用程序 几乎所有的GUI应用程序都会用多线程。举例来说加入现在有人在用word编辑一个比较大的文本文件刚刚才做过单字“查找”操作,当word进行查找时,屏幕上会出现“停止查找按钮”,用户可以随时停止查找。这个功能其实就用到了多线程。(1)执行查找(2)显示按钮,若按钮按下则停止查找 这两个操作分别交给不同的线程进行。这样一来执行线程(1)的线程可以专心查找,执行(2原创 2011-07-16 10:09:30 · 1893 阅读 · 0 评论 -
Java多线程设计模式详解学习笔记五——GuardedSuppension
public class Main { public static void main(String[] args) { RequestQueue requestQueue=new RequestQueue(); new ClientThread("Alice",requestQueue, 3141592L).start(); new ServerThread("原创 2011-08-17 16:11:59 · 981 阅读 · 0 评论 -
Java多线程编程总结笔记——一多线程基础知识
读解Thread类API:构造方法摘要Thread(Runnable target) 分配新的 Thread 对象。Thread(String name) 分配新的 Thread 对象。方法摘要static Thread currentThread() 返回对当前正在执行的线程对象的引用。 Cla原创 2011-07-20 14:19:03 · 1632 阅读 · 0 评论