//目的使用多线程实现计数功能
package com.thread.test;
//实现记数的类
public class AddCount {
public AddCount(){
}
public AddCount(Integer countNum ){
this.countNum = countNum;
}
private int countNum;
public int getCountNum() {
return countNum;
}
public void setCountNum(int countNum) {
this.countNum = countNum;
}
public void addNum(){
//countNum = countNum+1;
countNum +=1;
System.out.println("Off this method countnum : "+countNum);
System.out.println("Off this method threadname : "+Thread.currentThread().getName());
}
}
package com.thread.test;
//线程类
import com.thread.test.AddCount;
public class NumberThread implements Runnable {
private AddCount add = new AddCount();
boolean flag =true;
public void run() {
while(flag){
try{
synchronized(add){
System.out.println("Enter this method threadname : "+Thread.currentThread().getName());
System.out.println("Enter this method countNum : "+add.getCountNum());
add.addNum();
if(add.getCountNum()==100){
flag =false;
}
}
}catch(Exception e){
flag =false;
e.printStackTrace();
}
}
}
}
package com.thread.test;
//测试类
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
import com.thread.test.NumberThread;
public class TestCount {
public static void main(String[] args) {
/**
* 没有使用线程池的调用方式
*/
/* NumberThread num = new NumberThread();
Thread td0 = new Thread(num);
td0.setName("td0");
td0.start();
Thread td1 = new Thread(num);
td1.setName("td1");
td1.start();*/
/**
* 使用线程池的调用方式
*/
ExecutorService exec=null;
NumberThread num;
try{
exec =Executors.newFixedThreadPool(2);
num = new NumberThread();
Thread td0 = new Thread(num,"td0");
//td0.setName("td0");
exec.execute(td0);
Thread td1 = new Thread(num,"td1");
//td1.setName("td1");
exec.execute(td1);
}catch(Exception e){
e.printStackTrace();
}finally{
exec.shutdown();
}
}
}
分享到:
相关推荐
多线程程序编写 多线程编程是指在一个程序中同时运行多个线程,以提高程序的执行效率和响应速度。在 Windows 平台上,多线程编程通常使用 WINAPI 提供的线程控制函数来实现。 在多线程程序中,需要使用线程建立...
1.使用三种VC的多线程同步方法编写一个多线程的程序(要求在屏幕上先显示Hello,再显示World)。 1)基于全局变量的多线程同步程序; 2)基于事件的多线程同步程序; 3)基于临界区的多线程同步程序。
通过学习和理解这些概念,并结合提供的"C#编写多线程程序源码"实例,你可以更好地掌握C#中的多线程编程,从而编写出高效、稳定的应用程序。在实际开发中,还需要考虑线程安全、性能优化以及错误处理等细节。
在Java语言程序设计中,多线程是一个关键知识点,它允许在同一个程序中同时执行两个或更多的部分代码,以提高程序的效率和响应速度。Java语言从设计之初就内置了对多线程编程的支持,这一点通过它的并发API和语言...
visual c++ vc用MFC编写多线程程序
在多线程环境中,同一个子程序可以被多次启动,每个启动都会创建一个新的线程实例。为了确保线程安全,需要考虑以下几个方面: 1. **资源竞争**:当多个线程访问同一资源时,可能会引发数据不一致问题。易语言提供...
《POSIX多线程程序设计》深入描述了IEEE的开放系统接口标准——POSIX线程,通常称为Pthreads标准。本书首先解释了线程的基本概念,包括异步编程、线程的生命周期和同步机制;然后讨论了一些高级话题,包括属性对象、...
POSIX 多线程程序设计之前,我们需要了解POSIX(可移植操作系统接口)是一个定义一系列UNIX系统服务的接口标准,这些服务包括文件处理、进程控制、信号处理、定时器、多线程等,POSIX标准让编写的应用程序能在各个...
多线程是指一个程序内部同时执行的多个流程,与单线程相比,它至少有两个方面的优点:第一,它可以更好地利用系统资源,比如CPU,若一个线程因I/O操作受阻,另一个线程仍可利用CPU来执行;第二,它更好地满足了客户...
在Delphi编程环境中,多线程技术是一种强大的工具,它允许程序同时执行多个任务,从而提高应用程序的响应性和效率。本文将深入探讨如何在Delphi中编写多线程程序。 一、理解多线程 多线程是操作系统提供的功能,...
使用随机数来计算pi值,使用多线程
本项目,"C#编写的多线程多主机端口扫描程序",正是针对这一需求而设计的。它利用C#编程语言的强大功能,特别是其对多线程的支持,实现了高效快速地扫描多个主机的多个端口。 首先,我们来理解多线程的概念。在单...
《Win32多线程程序设计》一书深入探讨了在Windows操作系统环境下,利用C++进行多线程编程的技术和方法。多线程是现代软件开发中的关键概念,尤其是在资源密集型应用、实时系统和高性能计算领域。通过合理地利用多...
在IT行业中,网络编程是不可或缺的一部分,特别是在服务器端开发中,使用TCPServer编写多线程的socket服务是一项基础但重要的技术。本文将详细讲解如何使用TCPServer来实现这样的服务,以及多线程在其中的作用。 ...
描述:由C#编写的多线程异步抓取网页的网络爬虫控制台程序 功能:目前只能提取网络链接,所用的两个记录文件并不需要很大。网页文本、图片、视频和html代码暂时不能抓取,请见谅。 但需要注意,网页的数目是非常...
winsock api 使用多线程编写服务器程序winsock api 使用多线程编写服务器程序winsock api 使用多线程编写服务器程序winsock api 使用多线程编写服务器程序winsock api 使用多线程编写服务器程序
在编程领域,多线程(Multithread)技术是一种允许应用程序同时执行多个任务或子任务的方法,这极大地提高了软件的效率和响应性。在Windows环境下,Microsoft Visual C++(简称VC)提供了一套完整的工具集,支持开发...
在VB 6.0编程环境中,多线程技术是一种关键的高级特性,它允许应用程序同时执行多个任务,提高系统的响应速度和效率。本教程通过一个简单的小例子来讲解如何在VB 6.0中实现多线程。 首先,我们要了解线程是什么。...
本实验旨在通过编写简单的HTTP 1.0客户端/服务器程序、多线程Web服务器以及RMI程序,帮助你深入理解这些关键技术。 首先,我们来看HTTP 1.0客户端/服务器程序。HTTP是超文本传输协议,它是互联网上应用最为广泛的一...