`
saint2004
  • 浏览: 7195 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

第一次编写的多线程程序,希望大家赐教

阅读更多

//目的使用多线程实现计数功能
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 提供的线程控制函数来实现。 在多线程程序中,需要使用线程建立...

    使用三种VC的多线程同步方法编写一个多线程的程序

    1.使用三种VC的多线程同步方法编写一个多线程的程序(要求在屏幕上先显示Hello,再显示World)。 1)基于全局变量的多线程同步程序; 2)基于事件的多线程同步程序; 3)基于临界区的多线程同步程序。

    C#编写多线程程序源码

    通过学习和理解这些概念,并结合提供的"C#编写多线程程序源码"实例,你可以更好地掌握C#中的多线程编程,从而编写出高效、稳定的应用程序。在实际开发中,还需要考虑线程安全、性能优化以及错误处理等细节。

    Java语言程序设计教程课件第十一章多线程程序设计

    在Java语言程序设计中,多线程是一个关键知识点,它允许在同一个程序中同时执行两个或更多的部分代码,以提高程序的效率和响应速度。Java语言从设计之初就内置了对多线程编程的支持,这一点通过它的并发API和语言...

    vc用MFC编写多线程程序

    visual c++ vc用MFC编写多线程程序

    易语言多线程多次启动一个子程序

    在多线程环境中,同一个子程序可以被多次启动,每个启动都会创建一个新的线程实例。为了确保线程安全,需要考虑以下几个方面: 1. **资源竞争**:当多个线程访问同一资源时,可能会引发数据不一致问题。易语言提供...

    POSIX多线程程序设计.pdf

    《POSIX多线程程序设计》深入描述了IEEE的开放系统接口标准——POSIX线程,通常称为Pthreads标准。本书首先解释了线程的基本概念,包括异步编程、线程的生命周期和同步机制;然后讨论了一些高级话题,包括属性对象、...

    POSIX多线程程序设计

    POSIX 多线程程序设计之前,我们需要了解POSIX(可移植操作系统接口)是一个定义一系列UNIX系统服务的接口标准,这些服务包括文件处理、进程控制、信号处理、定时器、多线程等,POSIX标准让编写的应用程序能在各个...

    用PB编写多线程应用程序

    多线程是指一个程序内部同时执行的多个流程,与单线程相比,它至少有两个方面的优点:第一,它可以更好地利用系统资源,比如CPU,若一个线程因I/O操作受阻,另一个线程仍可利用CPU来执行;第二,它更好地满足了客户...

    Delphi中多线程程序的编写

    在Delphi编程环境中,多线程技术是一种强大的工具,它允许程序同时执行多个任务,从而提高应用程序的响应性和效率。本文将深入探讨如何在Delphi中编写多线程程序。 一、理解多线程 多线程是操作系统提供的功能,...

    多线程 pi计算

    使用随机数来计算pi值,使用多线程

    C#编写的多线程多主机端口扫描程序

    本项目,"C#编写的多线程多主机端口扫描程序",正是针对这一需求而设计的。它利用C#编程语言的强大功能,特别是其对多线程的支持,实现了高效快速地扫描多个主机的多个端口。 首先,我们来理解多线程的概念。在单...

    Win32多线程程序设计.pdf(带目录)

    《Win32多线程程序设计》一书深入探讨了在Windows操作系统环境下,利用C++进行多线程编程的技术和方法。多线程是现代软件开发中的关键概念,尤其是在资源密集型应用、实时系统和高性能计算领域。通过合理地利用多...

    使用TCPServer编写(多线程)socket服务

    在IT行业中,网络编程是不可或缺的一部分,特别是在服务器端开发中,使用TCPServer编写多线程的socket服务是一项基础但重要的技术。本文将详细讲解如何使用TCPServer来实现这样的服务,以及多线程在其中的作用。 ...

    由C#编写的多线程异步抓取网页的网络爬虫控制台程序

    描述:由C#编写的多线程异步抓取网页的网络爬虫控制台程序 功能:目前只能提取网络链接,所用的两个记录文件并不需要很大。网页文本、图片、视频和html代码暂时不能抓取,请见谅。 但需要注意,网页的数目是非常...

    winsock api 使用多线程编写服务器程序源码

    winsock api 使用多线程编写服务器程序winsock api 使用多线程编写服务器程序winsock api 使用多线程编写服务器程序winsock api 使用多线程编写服务器程序winsock api 使用多线程编写服务器程序

    用VC编写的多线程程序

    在编程领域,多线程(Multithread)技术是一种允许应用程序同时执行多个任务或子任务的方法,这极大地提高了软件的效率和响应性。在Windows环境下,Microsoft Visual C++(简称VC)提供了一套完整的工具集,支持开发...

    vb多线程程序

    在VB 6.0编程环境中,多线程技术是一种关键的高级特性,它允许应用程序同时执行多个任务,提高系统的响应速度和效率。本教程通过一个简单的小例子来讲解如何在VB 6.0中实现多线程。 首先,我们要了解线程是什么。...

    编写简单的HTTP 1.0客户端/服务器程序:.编写多线程Web服务器:编写简单的RMI程序

    本实验旨在通过编写简单的HTTP 1.0客户端/服务器程序、多线程Web服务器以及RMI程序,帮助你深入理解这些关键技术。 首先,我们来看HTTP 1.0客户端/服务器程序。HTTP是超文本传输协议,它是互联网上应用最为广泛的一...

Global site tag (gtag.js) - Google Analytics