`
wandejun1012
  • 浏览: 2719106 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

多线程控制方法

    博客分类:
  • java
 
阅读更多

1:start():用于开始执行run()方法中定义的线程体
2:sleep():调整java运行时间,指定调用线程的睡眠时间
3:join():用于调用线程等待本线程结束
4:yield():暂时停止调用线程并将其放在队列末尾,等待另一轮执行,使同一优先级的其他线程有机会运行

ps:join和yield可以理解为是一对反义词。

下面看代码:

 

import java.io.PrintWriter;

public class MethodTest {
	static PrintWriter out = new PrintWriter(System.out, true);

	public static void main(String[] args) {
		FristThread frist = new FristThread();
		SecondThread second = new SecondThread();
		frist.start();
		second.start();
		try {
			out.println("waiting for first thread to finishing...");
			frist.join();
			out.println("it is a long wait!");
			out.println("waking up second thread...");
			synchronized (second) {
				second.notify();
			}
			out.println("waking for second thread to finishing ...");
			second.join();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

		out.println("i'm ready to finish too.");
	}

}

class FristThread extends Thread {
	public void run() {
		MethodTest.out.println("First thread starts running");
		try {
			sleep(10000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		MethodTest.out.println("First thread finishes running");
	}
}

class SecondThread extends Thread {
	public synchronized void run() {
		MethodTest.out.println("Second thread starts running");
		MethodTest.out.println("Second thread suspends running");
		try {
			wait();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		MethodTest.out.println("Second thread run again and finishes ");

	}
}

 结果:

 

First thread starts running
waiting for first thread to finishing...
Second thread starts running
Second thread suspends running
First thread finishes running
it is a long wait!
waking up second thread...
waking for second thread to finishing ...
Second thread run again and finishes
i'm ready to finish too.
分享到:
评论

相关推荐

    C# 多线程控制实例

    总结来说,C#的多线程控制实例涉及创建线程、启动和停止线程、线程间的同步和通信,以及如何安全地管理线程。通过理解和熟练运用这些概念,开发者可以编写出高效、稳定的多线程程序。在实践中,要特别注意避免常见的...

    易语言多线程控制线程数量源码

    本篇将深入探讨易语言中如何实现多线程控制以及线程数量的管理。 在易语言中,线程用于在单个进程中同时执行多个独立的代码段,从而提高程序的执行效率。创建线程的基本步骤包括定义线程函数、创建线程对象和启动...

    大漠多线程模板_大漠_大漠多线程_

    在C#中,`System.Threading`命名空间提供了大量的类和方法来支持多线程编程,如`Thread`、`ThreadPool`、`Task`等。大漠的模板可能整合了这些工具,并进行了封装,使得开发者可以更方便地创建、管理和同步线程。 ...

    java 多线程 控制按钮移动 例子

    在【标题】"java 多线程 控制按钮移动 例子"中,提到的是使用多线程来实现GUI(图形用户界面)中的按钮动态移动,这通常涉及到事件处理和线程同步。 【描述】提到了多线程的概念,它允许并发执行多个指令流,每个...

    java多线程控制的赛跑程序

    这个“java多线程控制的赛跑程序”是一个示例,展示了如何利用多线程来模拟一场赛跑比赛。在这个程序中,每个参赛者(线程)都有自己的运行逻辑,通过线程的并发执行来模拟实际的赛跑过程。接下来,我们将深入探讨...

    Java多线程示例之线程控制

    线程控制的实践不仅关乎性能,还直接影响程序的稳定性和可靠性。合理的线程池大小设置可以根据系统的实际硬件配置和任务特性来确定,如处理器核心数、任务执行时间等。而线程通信则需要根据具体业务逻辑设计合适的...

    多线程控制progressbar

    标题中的“多线程控制`ProgressBar`”指的是在程序执行耗时任务时,通过多线程技术在后台处理工作,同时主线程负责更新`ProgressBar`的状态,以显示任务的完成进度。这样做的好处在于,可以避免因为长时间阻塞主线程...

    Linux多线程实现令牌桶流量控制

    令牌桶算法是其中一种广泛应用的流量控制方法。本文将深入探讨如何在Linux环境下利用多线程技术来实现令牌桶流量控制。 首先,我们要理解令牌桶算法的基本原理。令牌桶算法是一个允许突发数据传输并同时保持平均...

    操作多线程删除数据库表,以及控制listbox多线程呈现

    在这个"操作多线程删除数据库表,以及控制listbox多线程呈现"的小程序中,我们将探讨如何利用多线程来处理数据库操作和UI更新。 1. **多线程基础**:多线程是指在一个应用程序中同时运行多个独立的执行流。在.NET ...

    多线程实现多控制两个案例

    本篇文章将详细讲解如何通过多线程实现对两个任务的独立控制,以及如何进行线程同步,以确保数据的一致性。 首先,我们来看第一个案例:实现两个线程分别控制两个运动。在计算机编程中,线程可以被视为程序的执行流...

    3种多线程实现同步方法

    然而,多线程也带来了数据同步的问题,因为多个线程可能同时访问共享资源,如果不加以控制,就可能导致数据不一致或引发错误。本篇文章将深入探讨三种在C++中实现多线程同步的方法:事件对象、关键代码段和互斥对象...

    多线程控制红绿灯变化

    在本场景中,“多线程控制红绿灯变化”是一个典型的并发编程问题,旨在模拟现实生活中交通信号灯的交替工作模式。这个系统设计通常涉及两个主要线程,一个负责控制红灯,另一个负责控制绿灯,它们需要按照特定的时间...

    JavaScript多线程的实现方法(gif).txt

    ### JavaScript多线程的实现方法 #### 背景与概念 在JavaScript中,传统的单线程模型限制了其在复杂应用中的性能表现。随着Web应用程序功能日益强大,多线程的支持变得越来越重要。虽然原生JavaScript是基于事件...

    C#多线程之线程控制详解

    在C#中,线程控制方法主要包括Thread.Start()、Thread.Abort()、Thread.Suspend()和Thread.Resume()等。 1. Thread.Start():启动线程的执行,线程从开始执行到结束。 2. Thread.Abort():终止线程的执行,线程立即...

    C多线程调试方法

    标题与描述:“C多线程调试方法” 在深入探讨C多线程调试方法之前,我们需要理解多线程编程的基本概念及其在C语言中的应用。多线程编程允许在一个程序中并发执行多个线程,提高程序的效率和响应能力。然而,这种...

    多线程控制程序_并发_buriedutt_多线程_

    在计算机科学中,多线程控制是编程领域中的一个重要概念,尤其在当今的高性能计算环境中。标题"多线程控制程序_并发_buriedutt_多线程_"指出了我们探讨的主题,即如何管理和控制多线程以实现并发执行,从而提高程序...

    java多线程控制小球程序

    在“java多线程控制小球程序”这个项目中,我们看到一个具体的应用场景:多个小球在一个框内不断弹跳,并且这些小球可能在不同的时间发射。这样的设计可以模拟现实世界的物理现象,例如弹珠台或者粒子碰撞,同时也是...

    vb,net多线程控制界面,一点图标

    本话题主要探讨如何在VB.NET中实现多线程控制界面,并涉及一些图标相关的操作。 1. **线程基础知识** - **主线程**:应用程序的默认执行线程,负责用户界面(UI)的更新和事件处理。 - **工作线程**:用于执行非...

    JAVA多线程操作方法实用大全

    本文将深入探讨Java中的多线程操作方法,包括线程控制的基本方法、中断和睡眠以及相关示例。 首先,了解线程的基本状态至关重要。线程在运行过程中可能处于新建、可运行、运行、阻塞或死亡等状态。`isAlive()`方法...

Global site tag (gtag.js) - Google Analytics