`
ouyangfeng521
  • 浏览: 248676 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

关于java线程的

 
阅读更多
import java.util.Scanner;

public class Test {

	private T t = new T();

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		final Test test = new Test();
		final Scanner scanner = new Scanner(System.in);
		while (true) {
			System.out.println("请输入:1.启动 2.暂停 3.继续 4.重启 5.停止  6.退出程序");
			final int command = scanner.nextInt();
			if (command > 0 && command < 6) {
				test.command(command);
			} else {
				break;
			}
		}

	}

	public void command(int command) {

		switch (command) {
		case 1:
			new Thread(t).start();
			new Thread(t).start();
			break;
		case 2:
			t.setThreadCMD(ThreadCMD.RESUME);
			break;
		case 3:
			t.setThreadCMD(ThreadCMD.CONTINUE);
			break;
		case 4:
			t.setThreadCMD(ThreadCMD.STOP);
			command(1);
		case 5:
			t.setThreadCMD(ThreadCMD.STOP);
			break;
		}
	}

}

enum ThreadCMD {
	START, RESUME, CONTINUE , STOP
}

class T implements Runnable {

	private ThreadCMD threadCMD = ThreadCMD.START;

	private final Object object = new Object();

	private int count;

	@Override
	public void run() {
		try {

			while (true) {
				synchronized (object) {
					switch (threadCMD) {
					case START:
					case CONTINUE:
						count++;
						break;
					case RESUME:
						printInfo();
						object.wait();
						break;
					case STOP:
						printInfo();
						return;
					}
				}
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private void printInfo(){
		System.out.println(Thread.currentThread().getName() + " ThreadCMD=" + threadCMD
				+ "--count=" + count);
	}

	public void setThreadCMD(ThreadCMD threadCMD) {
		synchronized (object) {
			this.threadCMD = threadCMD;
			object.notifyAll();
		}
	}

}
 
分享到:
评论

相关推荐

    JAVA线程学习(源代码)

    本资源"JAVA线程学习(源代码)"提供了关于Java线程的源代码示例,帮助我们深入理解和实践线程的使用。 首先,我们要理解Java中的线程模型。Java线程由`java.lang.Thread`类或`java.util.concurrent.Executor`框架来...

    java线程文档大全

    这份“java线程文档大全”包含了关于Java线程的广泛知识,以下是其中的一些关键点: 1. **线程概念**:线程是程序执行的最小单位,每个线程都有自己的程序计数器、寄存器和局部变量,共享同一块内存空间。在Java中...

    java线程与并发编程实践

    本书《java线程与并发实践编程》由Jeff Friesen撰写,2017年2月出版,提供了关于Java线程API和并发工具的详细指南,帮助开发者深入理解和应用这些关键概念。 首先,Java线程是程序执行的独立路径,每个线程都有自己...

    线程 JAVA java线程 java线程第3版 java线程第2版第3版合集

    电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关线程的书籍) OReilly.Java.Threads.3rd.Edition.Sep.2004.eBook-DDU Java Thread Programming (Sams) java线程第二版中英文 java线程第二版中英文 ...

    关于Java线程间通信-回调.docx

    总的来说,回调在Java线程间通信中起到桥梁的作用,使得线程能够以非阻塞的方式互相协作,提高了程序的并发性能和响应速度。理解并熟练掌握回调以及其他线程通信机制是Java并发编程的关键,这对于开发高效、稳定的多...

    Java线程(Java.Thread)(中英版)

    这个资料包包含的是关于Java线程的中英文参考资料,包括书籍和源代码。 "Java.Threads,3rd.Edition.chm"可能是一个关于Java线程的第三版电子手册,通常这类资源会详细讲解线程的创建、生命周期、同步机制、线程池等...

    15个Java线程并发面试题和答案.docx

    以下是一些关于Java线程并发的关键知识点: 1. **线程调度与顺序控制**:线程的执行顺序可以通过`Thread.join()`方法来控制,如问题1所示,使得一个线程在另一个线程结束后再执行。 2. **Lock接口与同步代码块**:...

    java 线程工具类 java 线程工具类

    java 线程工具类 java 线程工具类java 线程工具类 java 线程工具类java 线程工具类 java 线程工具类java 线程工具类 java 线程工具类java 线程工具类 java 线程工具类java 线程工具类 java 线程工具类java 线程工具...

    java线程.rar

    本资源为一本关于Java线程的经典书籍,旨在帮助开发者深入理解和掌握Java多线程编程。 书中可能涵盖了以下几个关键知识点: 1. **线程创建**:Java提供了多种创建线程的方式,包括继承Thread类、实现Runnable接口...

    java线程.pdf

    根据提供的信息,我们可以推断出这份文档主要关注的是Java线程的相关内容。下面将围绕“Java线程”这一主题展开详细的介绍与解释。 ### Java线程基础 在Java语言中,线程是程序执行流的基本单元。一个标准的Java...

    Java线程技术精选

    本专题涵盖了20多篇关于Java线程的精选技术文章,涉及了多个关键领域,如死锁、合并、休眠、优先级、阻塞等。以下是对这些主题的详细阐述: 1. **条件变量**: 条件变量是Java线程通信的一种机制,用于在特定条件...

    Java线程资料.pdf

    标题为“Java线程资料.pdf”,说明该文档是一份关于Java编程语言中线程使用和管理方面的技术资料。由于文档内容涉及Java线程的关键知识点,我们可以从中提炼出以下几点关于Java线程的核心概念: 1. Java线程的创建...

    java 线程 dump 分析工具 2.3.3

    它提供关于发现的线程转储的统计信息,提供关于锁定监视器和等待线程的信息。它可以在线程之间进行区分,以寻找相似之处,并具有“长运行线程”检测。如果记录了类的直方图,它还提供了线程转储中的堆对象的概述。

    Java线程状态流转图

    Java线程状态流转图知识点总结 Java线程状态流转图是一种用于描述Java线程生命周期中不同的状态和状态转换的图形表示方式。该图形展示了Java线程从创建到终止的整个生命周期,并详细介绍了每种状态的特点和转换...

    java 线程java 线程

    Java线程是Java编程语言中的一个核心概念,它...以上就是关于Java线程的一些基础知识,包括线程的创建、状态管理、同步控制、异常处理以及高级特性。理解并掌握这些知识点对于编写高效、稳定的多线程Java程序至关重要。

    关于线程(java)两天的课件

    Java线程有五种基本状态:新建(New)、可运行(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Terminated)。这些状态之间的转换是通过调用特定的方法,如start()、sleep()、join()、wait()、notify()等...

    Java线程详解大全

    Java线程是并发编程的核心部分,它允许程序在同一时间执行多个独立的任务,从而提高系统效率和响应速度。本文将深入探讨Java线程的概念、生命周期、实现方式以及相关的同步机制。 首先,理解线程的基本概念至关重要...

    Java-for-thread.zip_java 线程

    以上就是关于Java线程的一些主要知识点。了解并熟练掌握这些内容,对于编写高效、稳定且并发安全的Java程序至关重要。在实际编程中,需要根据具体场景灵活运用这些技术,以实现最佳的并发性能。

    JAVA线程, 2Ed (Source).rar

    这是一本关于Java线程的第二版教程,通过源代码的形式,帮助开发者学习如何在Java应用程序中有效地管理和控制线程。 Java线程允许程序同时执行多个任务,提升应用程序的效率和响应性。Java中的线程有两种主要创建...

Global site tag (gtag.js) - Google Analytics