多线程的好处....?

sure2003 2008-07-13 07:19:16
在什么样的程序中,特别需要多线程???
下边的例子中,多线程的优势在哪里??


class SrThread1        	//Application的主类
{
public static void main(String args[])
{
SubThread first=new SubThread("first"); //Name is Thread_0
SubThread second=new SubThread("secend"); //Name is Thread_1
first.setPriority(5); //设置优先级为5级
second.setPriority(7); //设置优先级为7级
System.out.println("the priority of first thread is"+first.getPriority());
//输出数据
System.out.println("the Name of first Thread is"+first.getName());
System.out.println("the priority of second Thread is"+second.getPriority());
System.out.println("the Name of second Thread is"+second.getName());
first.start(); //启动线程first
second.start(); //启动线程second
}
}
class SubThread extends Thread //定义Thread 的子类,是用户定义的线程
{
String message;
SubThread (String message)
{
this.message=message;
} //构造方法
public void run()
{
for(int i=0;i<3;i++)
System.out.println(message+"Thread is running"); //是不是这里体现了多线程
try{sleep(100);}
catch(InterruptedException e){return;}
}
}

...全文
1603 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cry615 2011-05-19
  • 打赏
  • 举报
回复
数据共享或异步触发时,用线程
changleqy 2008-07-14
  • 打赏
  • 举报
回复
我有两个硬件设备,通过多线程,可以让他们独立的工作。
gaoteng1984 2008-07-14
  • 打赏
  • 举报
回复
在多核CPU上,多线程程序可以充分占用CPU资源,因为1个线程同一时刻只能被1个CPU占用。理论上,一台机器有几个CPU,就启动几个非阻塞的线程,是最理想的。线程太多了会增大调度开销(CPU上下文切换),以及线程栈本身的内存占用开销。 线程太少了,多余的CPU核得不到利用。

在编程开发上,多线程程序可以简化编程处理。一般来说,有图形界面的程序,都需要多线程,其中1个线程负责监听用户响应,1个线程做实际的工作。试想:如果只有1个线程在同时负责这2件事情,势必造成用户输入得不到及时相应,就好像我们点了Windows窗口的某个按钮但迟迟没有反应一样。
网络编程中,服务器端由于需要同时处理多个连接,因此采用多线程同步方式是个不错的选择。所谓多线程同步,指每个线程负责1个连接。每收到1个连接请求,就开辟1个新的线程,进行实际的传输工作。这样,每个线程之间互不影响。当然,采用单线程异步方式也是可以的,只是程序的结构可读性要差些,但优点是线程少,占资源少。
在IO密集的程序中,常采用多线程以充分利用CPU资源。例如word的打印功能,如果只有1个线程,那么在打印机打印期间,我们就不能对该word文档做任何其他操作了,只能坐在那里等他打印完。如果使用多线程,则打印功能只占用1个线程,其他线程负责其他功能,使得CPU和IO设备能够同时得到充分利用。
刘彬彬 2008-07-14
  • 打赏
  • 举报
回复
在网络编程中,用到“多线程”比较多!
sure2003 2008-07-14
  • 打赏
  • 举报
回复
5楼的兄弟,那个程序是什么意思啊????
insiku2 2008-07-13
  • 打赏
  • 举报
回复
SUN的Solaris服务器有4个双核的CPU
你说多线程有什么好处?
fdar 2008-07-13
  • 打赏
  • 举报
回复
public class AvOfJava {
public static void main (String[] args) {
String temp = "java";
char[] av = new char[2];
for(int i=1; i<temp.length()-1; i++) {
av[i-1] = temp.charAt(i);
}
System.out.println("可以边学"+temp+"边看"+String.valueOf(av));
}
}
sure2003 2008-07-13
  • 打赏
  • 举报
回复
在JAVA实际编程中,用得多吗?
老紫竹 2008-07-13
  • 打赏
  • 举报
回复
可以同时听歌和打游戏
大海Online 2008-07-13
  • 打赏
  • 举报
回复
有I/O等待的才需要多线程

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧