class Info {
public synchronized void hold() throws InterruptedException {
this.wait();
}
public synchronized void run() {
this.notifyAll();
}
}
public class TestThread extends Thread {
public int i = 0;
public Info info;
public int stop = 0;
public int start = 0;
public int getStop() {
return stop;
}
public void setStop(int stop) {
this.stop = stop;
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public TestThread(Info info, int stop, int start) {
this.stop = stop;
this.start = start;
this.info = info;
}
@Override
public void run() {
while (i < 20) {
if (i == stop) {
try {
info.hold();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if(i==start){
info.run();
}
i++;
System.out.println(Thread.currentThread().getName()+":"+i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Info info = new Info();
TestThread t1 = new TestThread(info, 8, -1);
TestThread t2 = new TestThread(info,5,-1);
TestThread t3 = new TestThread(info,-1,10);
t1.setName("a");
t2.setName("b");
t3.setName("main");
t3.start();
t1.start();
t1.setStop(5);
t2.start();
}
}
分享到:
相关推荐
今天没事给大家写一个多线程例子 今天没事给大家写一个多线程例子
多线程允许一个应用程序同时执行多个任务,每个任务都在一个独立的线程上运行。C#中,我们可以通过System.Threading命名空间下的类来创建和管理线程。主线程是应用程序启动时默认创建的,而额外的线程可以由开发者...
在多线程环境中,事件处理通常在引发事件的线程上运行,因此,如果一个线程修改了UI控件的状态,而另一个线程尝试处理相关事件,可能会导致线程不安全。使用适当的同步机制可以解决这个问题。 "资源管理器"可能涉及...
先由一个简单的例子引出多线程 先作出这个简单的界面 “开始”对应的槽函数是:slotStart() “停止”对应的槽函数是:slotStop() 本例中的线程(workthread类)实现的功能是,从0到9循环打印,0至9各占一排。 ...
本资源包含六个C#.NET多线程的实例,涵盖了多线程的基本使用到更高级的概念,如线程互斥。以下是这些实例可能涉及的关键知识点: 1. **线程创建**:C#中创建线程主要有两种方式,一是通过`System.Threading.Thread`...
在多线程环境中,异常处理变得复杂,因为一个线程抛出的异常可能会影响到其他线程。理解如何在多线程程序中正确地处理异常是至关重要的。 通过学习和实践这些例子,你将能够熟练掌握C++多线程编程的核心概念,并...
excel vba 多线程 实例 excel vba 多线程 实例
这个"易语言大漠多线程例子.rar"压缩包包含了一个使用大漠插件实现多线程编程的示例项目。 多线程是现代程序设计中一个关键的概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。在易语言中,使用大漠...
多线程是现代软件开发中的一个重要概念,它允许程序同时执行多个任务,而不是顺序地执行。在易语言中,通过创建和管理多个线程,我们可以实现后台计算、异步操作以及用户界面的流畅交互。这种方式尤其适合于处理大...
2. **共享资源**:在多线程环境中,多个线程可能需要访问同一个数据或对象,这就形成了共享资源。 3. **竞态条件**:当两个或多个线程同时访问并修改共享资源时,如果没有适当的同步措施,可能导致数据的不一致性,...
多线程编程是现代软件开发中的一个重要概念,它允许程序同时执行多个任务,提高了系统资源的利用率和程序的响应速度。 在MFC中实现多线程,主要涉及以下几个关键知识点: 1. **CWinThread类**:MFC将Windows API中...
本篇文章将详细讲解一个在Delphi中实现的最简单的多线程例子,帮助你理解如何在实践中应用多线程。 首先,让我们分析一下提供的文件列表: 1. `ThSort.dcu` 和 `SortThds.dcu`:这些是编译后的单元文件,包含了源...
Linux 下 C 语言多线程编程实例 Linux 下的多线程编程是一种非常重要的技术,在...本实例提供了一个非常实用的多线程编程示例,帮助我们更好地理解多线程编程的基本概念和技术,并且可以作为实际应用的参考和借鉴。
"多线程实例-摇奖机源码"是一个很好的学习资源,适合初学者理解并实践多线程的控制。 首先,让我们了解一下多线程的基本概念。在单线程程序中,所有任务都按照顺序依次执行。而在多线程环境中,多个线程可以并发...
Delphi 三个多线程例子代码是个实例解压后即可运行,经过测试运行没有错误。大家放心下载
在"Delphi API 串口通信 多线程例子.rar"这个压缩包中,可能包含了一个示例项目,展示了如何使用Delphi的API和多线程技术实现串口通信。文件名"codefans.net"可能指的是一个代码分享网站,或者是一个特定的源代码...
通过多线程,程序可以同时处理多个任务,比如一个线程负责读取数据,另一个线程负责计算,从而提高程序的执行效率。 二、线程的优势与挑战 1. 优势: - 提高响应性:多线程可以使用户界面保持响应,即使有耗时操作...
以下将详细讲解C#.NET中的多线程及其相关实例,包括基本使用、线程互斥等核心概念。 1. **多线程基本使用** 在C#.NET中,我们可以使用`System.Threading`命名空间中的`Thread`类来创建和管理线程。创建一个新线程...
在计算机编程中,多线程是一种...这个“多线程例子.cpp”文件很可能是实现上述概念的一个具体实例,可能包括线程创建、同步、通信等操作。通过分析和学习这个例子,你可以更好地理解如何在实际项目中运用多线程技术。
标题中的“多线程 串口的多线程例子”是指在编程中处理串行通信时采用多线程技术的一个示例。串口通信是一种在计算机及其外设间通过串行数据传输的方式进行通信的技术,通常用于设备间的短距离通信。多线程则是在...