`

一个多线程例子

    博客分类:
  • Java
 
阅读更多

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# 多线程实例多线程实例多线程实例

    多线程允许一个应用程序同时执行多个任务,每个任务都在一个独立的线程上运行。C#中,我们可以通过System.Threading命名空间下的类来创建和管理线程。主线程是应用程序启动时默认创建的,而额外的线程可以由开发者...

    .NET多线程实例

    在多线程环境中,事件处理通常在引发事件的线程上运行,因此,如果一个线程修改了UI控件的状态,而另一个线程尝试处理相关事件,可能会导致线程不安全。使用适当的同步机制可以解决这个问题。 "资源管理器"可能涉及...

    Qt 多线程及简单实例 demo

    先由一个简单的例子引出多线程 先作出这个简单的界面 “开始”对应的槽函数是:slotStart() “停止”对应的槽函数是:slotStop() 本例中的线程(workthread类)实现的功能是,从0到9循环打印,0至9各占一排。 ...

    C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例),可直接运行

    本资源包含六个C#.NET多线程的实例,涵盖了多线程的基本使用到更高级的概念,如线程互斥。以下是这些实例可能涉及的关键知识点: 1. **线程创建**:C#中创建线程主要有两种方式,一是通过`System.Threading.Thread`...

    简单多线程实例简单多线程实例简单多线程实例

    多线程是指在一个程序内同时运行多个线程,每个线程都独立地执行自己的任务。在Java、Python、C++等编程语言中,都有内置的多线程支持。通过多线程,我们可以充分利用多核处理器的优势,提高程序的响应速度和整体...

    c++多线程编程的十个例子

    在多线程环境中,异常处理变得复杂,因为一个线程抛出的异常可能会影响到其他线程。理解如何在多线程程序中正确地处理异常是至关重要的。 通过学习和实践这些例子,你将能够熟练掌握C++多线程编程的核心概念,并...

    excel vba 多线程 实例

    excel vba 多线程 实例 excel vba 多线程 实例

    易语言大漠多线程例子.rar

    这个"易语言大漠多线程例子.rar"压缩包包含了一个使用大漠插件实现多线程编程的示例项目。 多线程是现代程序设计中一个关键的概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。在易语言中,使用大漠...

    易语言多线程简单实用例子分享

    多线程是现代软件开发中的一个重要概念,它允许程序同时执行多个任务,而不是顺序地执行。在易语言中,通过创建和管理多个线程,我们可以实现后台计算、异步操作以及用户界面的流畅交互。这种方式尤其适合于处理大...

    C#多线程互斥实例 多线程获取同一变量

    2. **共享资源**:在多线程环境中,多个线程可能需要访问同一个数据或对象,这就形成了共享资源。 3. **竞态条件**:当两个或多个线程同时访问并修改共享资源时,如果没有适当的同步措施,可能导致数据的不一致性,...

    Delphi中最简单的多线程例子

    本篇文章将详细讲解一个在Delphi中实现的最简单的多线程例子,帮助你理解如何在实践中应用多线程。 首先,让我们分析一下提供的文件列表: 1. `ThSort.dcu` 和 `SortThds.dcu`:这些是编译后的单元文件,包含了源...

    Linux下C语言多线程编程实例

    Linux 下 C 语言多线程编程实例 Linux 下的多线程编程是一种非常重要的技术,在...本实例提供了一个非常实用的多线程编程示例,帮助我们更好地理解多线程编程的基本概念和技术,并且可以作为实际应用的参考和借鉴。

    多线程实例-摇奖机源码

    "多线程实例-摇奖机源码"是一个很好的学习资源,适合初学者理解并实践多线程的控制。 首先,让我们了解一下多线程的基本概念。在单线程程序中,所有任务都按照顺序依次执行。而在多线程环境中,多个线程可以并发...

    Delphi 多线程实例

    Delphi 三个多线程例子代码是个实例解压后即可运行,经过测试运行没有错误。大家放心下载

    Delphi API 串口通信 多线程例子.rar

    在"Delphi API 串口通信 多线程例子.rar"这个压缩包中,可能包含了一个示例项目,展示了如何使用Delphi的API和多线程技术实现串口通信。文件名"codefans.net"可能指的是一个代码分享网站,或者是一个特定的源代码...

    多线程实例,线程实例

    通过多线程,程序可以同时处理多个任务,比如一个线程负责读取数据,另一个线程负责计算,从而提高程序的执行效率。 二、线程的优势与挑战 1. 优势: - 提高响应性:多线程可以使用户界面保持响应,即使有耗时操作...

    C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例)

    以下将详细讲解C#.NET中的多线程及其相关实例,包括基本使用、线程互斥等核心概念。 1. **多线程基本使用** 在C#.NET中,我们可以使用`System.Threading`命名空间中的`Thread`类来创建和管理线程。创建一个新线程...

    多线程例子 演示多线程使用

    在计算机编程中,多线程是一种...这个“多线程例子.cpp”文件很可能是实现上述概念的一个具体实例,可能包括线程创建、同步、通信等操作。通过分析和学习这个例子,你可以更好地理解如何在实际项目中运用多线程技术。

    多线程实例(MFC)VS2010版本

    多线程编程是现代软件开发中的一个重要概念,它允许程序同时执行多个任务,提高了系统资源的利用率和程序的响应速度。 在MFC中实现多线程,主要涉及以下几个关键知识点: 1. **CWinThread类**:MFC将Windows API中...

Global site tag (gtag.js) - Google Analytics