- 浏览: 263089 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (303)
- c (31)
- c++ (16)
- java (18)
- c# (1)
- python (3)
- java web (6)
- oracle (7)
- sqlserver (2)
- mysql (2)
- android (24)
- android系统 (15)
- android多媒体部分 (15)
- android游戏 (12)
- linux (26)
- javaScript (1)
- ajax (1)
- node JS (2)
- html (5)
- apache (3)
- jboss (1)
- weblogic (0)
- 通信协议 (10)
- 云计算 (1)
- 分布式 (5)
- ejb (1)
- webservice (5)
- 设计模式 (16)
- JNI (6)
- swing (13)
- 版本控制 (1)
- UML (1)
- xml (4)
- spring (5)
- hibernate (5)
- struts1 (3)
- struts2 (4)
- ibatis (0)
- tomcat (2)
- 心得体会 (1)
- css (1)
- 嵌入式 (41)
- arm体系结构 (10)
/**
* 子线程循环10次,主线程100次 如此循环50次;
*
* @time 上午11:45:17
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class ThreadTest {
/**
* @param args
*/
public static void main(String[] args) {
/**
* 线程互吃
*/
class Business {
boolean isShouldSub = true;
// 主线程5
public synchronized void mani() {
if (isShouldSub) {
// 执行监视器的wait方法
try {
this.wait();
} catch (InterruptedException e1) {
e1.printStackTrace();
}
for (int i = 1; i <= 5; i++) {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("主线程:" + Thread.currentThread().getName() + ":" + i);
}
}
isShouldSub = true;
this.notify();
}
// 子线程10
public synchronized void sub() {
if (isShouldSub) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 1; i <= 10; i++) {
System.out.println("子线程:" + Thread.currentThread().getName() + ":" + i);
}
isShouldSub = false;
this.notify();
}
}
final Business business = new Business();
new Thread() {
public void run() {
while (true) {
business.sub();
}
}
}.start();
while (true) {
business.mani();
}
}
}
发表评论
-
thread local 学习笔记
2012-11-08 15:45 625thread local(thread 的局部变量)解决多 ... -
mina 学习笔记一
2012-11-05 16:33 621mina下载路径 http://mina.apache.or ... -
多线程学习笔记二
2012-09-04 11:05 629/** * 传统线程 * * @time 下午06:15 ... -
多线程学习笔记三
2012-09-04 11:06 616/** * 两个线程进行数据交换 * * @time 上 ... -
多线程学习笔记四
2012-09-04 11:08 660/** * 线程范围内的数据共享 * * 应用场景:减少 ... -
java swing 学习笔记一(画板Panel )
2012-09-04 11:18 1074/** * 画板 * * @time 3:38:10 P ... -
java swing学习笔记二(画布Canvas)
2012-09-04 11:19 3251/** * 画布 * @time 11:23:53 AM ... -
java IO流学习笔记一
2012-09-08 17:10 560IO 两大主流 16位和8位 16位对应writer和rea ... -
java 类装载器
2012-09-08 18:12 701public class ClassLoaderTest { ... -
并发库学习笔记一
2012-09-28 16:37 634新建线程并启动的几种 ... -
并发库学习笔记二
2012-09-28 16:38 455阻塞队列(生产者和消费者开发模式) 三种常用的阻塞队 Ar ... -
并发库学习笔记三
2012-09-28 16:40 592Synchronized是lock的一种简化实现,一个l ... -
并发库学习笔记四
2012-09-28 16:42 661ConcurrentHashMap并没有实现Lock-Free ... -
并发库学习笔记五
2012-09-28 16:43 728并发流程控制CountDown ... -
java IO流学习笔记二
2012-10-03 00:24 630/** * * * 目录分隔符用\\或/ * * @ ... -
jdk5.0的特性
2012-10-03 00:28 6391静态导入 导入指定类 ... -
java IO流学习笔记三
2012-10-04 23:39 719转换流 inputStreamReader 字节转字符 o ...
相关推荐
多线程学习笔记 iOS开发中,多线程是一种常见的技术手段,用于优化应用程序的性能,提升用户体验。多线程的核心是让程序能够并发地执行多个任务,合理地利用设备的计算能力,尤其是在拥有多个核心的处理器上。 ...
这份"C++多线程学习笔记1"涵盖了基础到进阶的多线程概念,旨在帮助初学者快速掌握这一关键技能。 首先,C++11引入了对多线程的支持,引入了`<thread>`库,使得创建和管理线程变得简单。创建一个新的线程可以使用`...
这篇学习笔记将深入探讨Java多线程的核心概念、实现方式以及相关工具的使用。 一、多线程基础 1. 线程与进程:在操作系统中,进程是资源分配的基本单位,而线程是程序执行的基本单位。每个进程至少有一个主线程,...
java学习笔记2(多线程)java学习笔记2(多线程)
多线程 学习笔记.md
java基础:多线程学习笔记
Java 线程学习笔记 Java 线程创建有两种方法: 1. 继承 Thread 类,重写 run 方法:通过继承 Thread 类并重写 run 方法来创建线程,这种方法可以使线程具有自己的执行逻辑。 2. 实现 Runnable 接口:通过实现 ...
【UNIX多线程学习笔记】 在UNIX操作系统中,多线程是一种重要的编程模型,它允许多个执行流在单个进程中并发运行。多线程带来了许多优势,包括提高应用程序响应速度,充分利用多CPU系统的资源,以及优化程序结构,...
### Java多线程学习笔记 #### 一、线程的基本概念 在计算机科学中,**线程**(Thread)是程序执行流的最小单位。一个标准的程序只能做一件事情,而通过多线程技术,可以让程序同时处理多个任务。在Java中,线程是...
本篇笔记将深入探讨多线程的各个方面,包括其定义、作用以及如何在Windows环境中进行多线程编程。 首先,进程和线程是操作系统中的基本执行单位。进程是程序的实例,拥有独立的虚拟内存空间和系统资源,当进程结束...
Python3的多线程编程是软件开发中一个重要的概念,特别是在需要并发处理任务或高效利用多核处理器资源的场景下。本篇学习笔记主要涵盖了线程基础、threading模块的使用以及线程同步控制。 首先,线程是操作系统分配...
这篇文档和对应的源代码 博文链接:https://interper56-sohu-com.iteye.com/blog/172303
在IT领域,多线程是程序设计中...马士兵的多线程训练营资料1和资料2可能涵盖了以上这些知识点的详细讲解,通过学习这些内容,开发者可以掌握多线程编程的基本技能,解决实际项目中的并发问题,提升软件的性能和稳定性。
在多线程环境下,多个线程可以并行地在单个进程中执行,使得程序能够同时处理多项任务。 Java中的线程是通过`Thread`类或实现`Runnable`接口来创建的。你可以直接继承`Thread`类并重写`run()`方法,或者创建一个...
Java并发编程学习笔记,研究JAVA并发多线程编程的一本教程,使用并发技术可以开发出并行算法,充分利用多处理器的计算能力,避免硬件资源浪费。目前,在JAVA并发编程方面的论述系统且内容详实的技术资料不太多,Java...
多线程是指在一个应用程序中存在多个并发执行的线程,它们共享同一内存空间,这样可以提高程序的执行效率。 在Java中,有三种创建线程的方式: 1. **继承Thread类**:创建一个新的类,该类继承自Thread类,然后...
在计算机科学中,多线程是一种编程模型,允许一个应用程序同时执行多个任务。这提高了系统的效率,特别是对于处理大量并发操作的情况。以下是一些关于多线程的重要知识点,特别是关于在Linux和Windows环境下创建和...