- 浏览: 77398 次
- 性别:
- 来自: 深圳
文章分类
最新评论
/* stop方法已经过时。 如何停止线程? 只有一种,run方法结束。 开启多线程运行,运行代码通常是循环结构。 只要控制循环,就可以让run方法结束,也就是线程结束。 */ class StopThreadDemo implements Runnable{ private boolean flag = true; public void run(){ while(flag){ System.out.println(Thread.currentThread().getName()+"...run"); } } public void changeFlag(){ flag = false; } } class StopThread{ public static void main(String[] args){ StopThreadDemo st = new StopThreadDemo(); Thread t1 = new Thread(st); Thread t2 = new Thread(st); t1.start(); t2.start(); int num = 0; while(true){ if(num++ == 60){ st.changeFlag(); break; } System.out.println(Thread.currentThread().getName()+"..."+num); } } }
/* 特殊情况,当线程处于了冻结状态,就不会读取到标记, 线程就不会结束。 */ class StopThreadDemo implements Runnable{ private boolean flag = true; public synchronized void run(){ while(flag){ try{ wait(); } catch(InterruptedException e){ System.out.println(Thread.currentThread().getName()+"...Exception"); } System.out.println(Thread.currentThread().getName()+"...run"); } } public void changeFlag(){ flag = false; } } class StopThread{ public static void main(String[] args){ StopThreadDemo st = new StopThreadDemo(); Thread t1 = new Thread(st); Thread t2 = new Thread(st); t1.start(); t2.start(); int num = 0; while(true){ if(num++ == 60){ st.changeFlag(); break; } System.out.println(Thread.currentThread().getName()+"..."+num); } } }
/* 特殊情况,当线程处于了冻结状态,就不会读取到标记, 线程就不会结束。 当没有指定的方式让冻结的线程恢复到运行状态时,这时需要 对冻结进行清除。强制让线程恢复到运行状态中来。这样就可以操作 标记让线程结束。 Thread类提供该方法interru(); */ class StopThreadDemo implements Runnable{ private boolean flag = true; public synchronized void run(){ while(flag){ try{ wait(); } catch(InterruptedException e){ System.out.println(Thread.currentThread().getName()+"...Exception"); flag = false; } System.out.println(Thread.currentThread().getName()+"...run"); } } public void changeFlag(){ flag = false; } } class StopThread{ public static void main(String[] args){ StopThreadDemo st = new StopThreadDemo(); Thread t1 = new Thread(st); Thread t2 = new Thread(st); t1.start(); t2.start(); int num = 0; while(true){ if(num++ == 60){ //st.changeFlag(); t1.interrupt(); t2.interrupt(); break; } System.out.println(Thread.currentThread().getName()+"..."+num); } } }
发表评论
-
151多线程(优先级&yield方法)
2015-10-28 11:16 694/* 养成习惯:数据共享用静态 */ class Dem ... -
150_多线程(Join方法)
2015-10-27 18:31 610/* join: 当A线程执行到了B线程的join方法 ... -
114_面向对象(多异常处理)_黑马程序员_Java基础视频
2015-10-25 23:27 695/* 对多异常的处理 1.生命异常时,建议声明更为具体的异 ... -
113_面向对象(异常声明throws)_黑马程序员_Java基础视频
2015-10-25 23:26 481/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
112_面向对象(异常try-catch)
2015-10-25 23:25 733/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
147_多线程(线程间通信-生产者消费者JDK5.0升级版)
2015-10-21 23:33 751/*JDK1.5及以上提供了多线程升级解决方案。 将同步Sy ... -
146_多线程(线程间通信-生产者消费者)
2015-10-20 23:35 627一个生产者一个消费者 ... -
144_多线程(线程间通信-等待唤醒机制)
2015-10-20 18:35 721class Res{ String name; Str ... -
142_多线程-线程间通信
2015-10-20 16:18 703/* 线程间通讯: 其实就是多线程在操作同一个资源。 但 ... -
141多线程-死锁
2015-10-20 14:45 694/* 死锁: 同步中嵌套同步 */ class T ... -
140_多线程(多线程-单例设计模式-懒汉式)
2015-10-19 11:45 689/* 单例设计模式 饿汉式 class Single ... -
138_多线程(多线程-同步函数的锁是this)
2015-10-15 14:48 847/* 同步函数用的是哪一个锁呢? 函数需要被对象调用。那么 ... -
137_多线程(多线程-同步函数)
2015-10-13 23:25 599/* 需求:银行有一个金库。 有两个储户分别存300元 ... -
135_多线程(多线程的安全问题)
2015-10-13 18:07 609class TWindow implements Runnab ... -
多线程(创建线程-实现Runnable接口)
2015-10-10 00:19 554class TWindow implements Runnab ... -
133_多线程(售票的例子)
2015-10-09 23:48 645/* 需求:简单的买票程序 多个窗口卖票 */ c ... -
132_多线程(获取线程对象以及名称)
2015-10-09 23:30 1216/* 练习:创建两个线程,和主线程交替运行 线程都有自 ... -
多线程-继承Thread类
2015-10-09 00:26 1560/* 进程:是一个正在执行中的程序 每一个进程执行都有一个 ... -
包的应用
2015-10-08 23:28 1665package pack; class PackageD ... -
异常总结
2015-10-05 20:07 574异常是什么? 是对问题的描述,将问题进行对象的封装。 ...
相关推荐
标题中的“DELPHI下的多线程程序设计2.rar”暗示了这是一个关于Delphi中多线程编程的深入教程,可能是系列教程的第二部分,旨在帮助开发者掌握如何在Delphi中有效地使用多线程。 描述中提到的“利用DELPHI下标准的...
在标题"ftp.rar_FTP 多线程_FTp多线程_ftp vc_多线程 ftp"中,关键词“多线程”和“ftp vc”暗示了这个项目是用VC++(Visual C++)开发的,具有多线程功能的FTP客户端或服务器应用程序。多线程技术在FTP应用中的使用...
在编程领域,多线程是一种常见且强大的技术,它允许应用程序同时执行多个任务,从而提高程序的效率和响应性。Delphi,作为一个流行的Object Pascal开发环境,提供了丰富的工具和库来支持多线程编程。本篇文章将深入...
标题中的"ChanSheng_src.rar_多线程 传 文件_服务器_服务端_聊天_聊天 多线程"表明这是一个关于多线程文件传输、服务器和服务端通信以及集成聊天功能的项目源代码压缩包。从描述中我们可以进一步了解这个系统的特点...
在VB6.0环境下,开发多线程应用程序是一项挑战,因为VB6本身并不直接支持多线程编程。然而,通过一些技巧和外部库,开发者可以实现这一目标。这个"堪称精品的VB多线程控制台源程序代码.rar"提供了一个示例,展示了...
在本文中,我们将深入探讨如何在Microsoft Visual C++ 6.0(简称VC6.0)环境下进行多线程编程,特别关注线程的创建、暂停、停止以及线程间的通信。多线程编程是软件开发中的一个重要概念,它允许程序同时执行多个...
在计算机编程领域,多线程下载是一种提高程序执行效率,特别是网络数据传输速度的技术。针对“vc_多线程下载”这一主题,我们将深入探讨如何在Microsoft Visual C++(简称VC)环境中实现多线程下载。 多线程是并发...
本文件“多线程,多接收模式串口类 LsComm 之二_串口多线程_串口_多接收模式串口类LsComm_多线程.zip”似乎是一个关于如何实现多线程串口通信的实例,特别是使用了名为LsComm的串口类。下面我们将深入探讨这两个关键...
在IT领域,多线程是一种程序设计技术,它允许应用程序同时执行多个独立的任务或子任务。在本案例中,我们关注的是Delphi编程环境中实现的多线程技术。Delphi是一款强大的面向对象的Windows应用程序开发工具,其核心...
在Delphi XE8开发环境中,多线程技术是一种常用的方法来提高应用程序的性能和响应性,特别是对于处理耗时任务或并发操作的情况。本文将深入探讨如何在Delphi XE8中使用多线程,以`TThreadTimer`为例进行讲解。 首先...
"大漠多线程模板"是一个专门针对C#开发的多线程处理框架,它为开发者提供了便捷的方式来管理和优化多线程应用。这个框架由知名开发者"大漠"创建,旨在简化复杂的并发编程,提高代码的可读性和可维护性。 多线程允许...
在这个项目中,开发者利用多线程技术来提高文件下载的效率。 多线程是程序设计中的一个重要概念,特别是在处理I/O密集型任务如网络下载时,它可以将任务分解到多个独立的执行线程,从而实现并发处理,提高程序的...
在IT行业中,多线程和串口通讯是两个至关重要的概念,特别是在实时系统和设备通信领域。本项目“c#_多线程串口通讯_快速采集”利用C# 2008语言实现了对多台设备进行高效、不间断的数据采集,这在工业自动化、物联网...
在C#编程中,多线程是一个核心概念,它允许程序同时执行多个任务,从而提高应用程序的效率和响应性。本示例“Demo_多线程例_”旨在教授如何在C#环境中创建和管理多线程。 1. **线程的创建** 在C#中,可以使用`...
《串口多线程技术在数据采集与存储中的应用》 在现代计算机系统中,串口通信因其简单、可靠的特点,被广泛应用于各种设备的数据交换,尤其是在工业控制、物联网等领域。而多线程技术则是提高系统并发性能,优化资源...
《串口测试工具CommTest:探索多串口与多线程技术在通信测试中的应用》 串口通信作为计算机通信领域的重要组成部分,广泛应用于各种设备的连接与数据传输。随着现代电子设备对通信效率和吞吐量的需求日益提高,多...
在C#编程中,多线程是一个核心概念,它允许程序同时执行多个任务,从而提高应用程序的效率和响应性。`UseMonitor_C#_fly67x_多线程_`这个项目标题暗示了我们将探讨如何在C#环境中创建和管理多线程,以及可能涉及的...
"day15_多线程02"这个标题暗示我们将会深入探讨多线程的第二部分,这可能是一个课程或者教程的第十五天内容,重点在于多线程的进阶主题。尽管没有具体的标签,我们可以假设这个压缩包可能包含了源代码、笔记、示例或...