|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
多谢指点,其实我对.net网页编程和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。
importjava.io.*;
//多线程编程
publicclassMultiThread
{
publicstaticvoidmain(Stringargs[])
{
System.out.println("我是主线程!");
//上面创立线程实例thread1
ThreadUseExtendsthread1=newThreadUseExtends();
//创立thread2时以完成了Runnable接口的THhreadUseRunnable类实例为参数
Threadthread2=newThread(newThreadUseRunnable(),"SecondThread");
thread1.start();//启动线程thread1使的地方于停当形态
//thread1.setPriority(6);//设置thread1的优先级为6
//优先级将决意cpu空出时,处于停当形态的线程谁先占据cpu入手下手运转
//优先级局限1到10,MIN_PRIORITY,MAX_PRIORITY,NORM_PAIORITY
//新线程承继创立她的父线程优先级,父线程一般有一般优先级即5NORM_PRIORITY
System.out.println("主线程将挂起7秒!");
try
{
Thread.sleep(7000);//主线程挂起7秒
}
catch(InterruptedExceptione)
{
return;
}
System.out.println("又回到了主线程!");
if(thread1.isAlive())
{
thread1.stop();//假如thread1还存在则杀失落他
System.out.println("thread1休眠太长,主线程杀失落了thread1!");
}
else
System.out.println("主线程没发明thread1,thread1已醒按次实行停止了!");
thread2.start();//启动thread2
System.out.println("主线程又将挂起7秒!");
try
{
Thread.sleep(7000);//主线程挂起7秒
}
catch(InterruptedExceptione)
{
return;
}
System.out.println("又回到了主线程!");
if(thread2.isAlive())
{
thread2.stop();//假如thread2还存在则杀失落他
System.out.println("thread2休眠太长,主线程杀失落了thread2!");
}
else
System.out.println("主线程没发明thread2,thread2已醒按次实行停止了!");
System.out.println("程序停止按恣意键持续!");
try
{
System.in.read();
}
catch(IOExceptione)
{
System.out.println(e.toString());
}
}//main
}//MultiThread
classThreadUseExtendsextendsThread
//经由过程承继Thread类,并完成它的笼统办法run()
//得当时分创立这一Thread子类的实例来完成多线程机制
//一个线程启动后(也即进进停当形态)一旦取得CPU将主动挪用它的run()办法
{
ThreadUseExtends(){}//机关函数
publicvoidrun()
{
System.out.println("我是Thread子类的线程实例!");
System.out.println("我将挂起10秒!");
System.out.println("回到主线程,请稍等,方才主线程挂起大概还没醒过去!");
try
{
sleep(10000);//挂起5秒
}
catch(InterruptedExceptione)
{
return;
}
//假如该run()办法按次实行完了,线程将主动停止,而不会被主线程杀失落
//但假如休眠工夫太长,则线程还存活,大概被stop()杀失落
}
}
classThreadUseRunnableimplementsRunnable
//经由过程完成Runnable接口中的run()办法,再以这个完成了run()办法的类
//为参数创立Thread的线程实例
{
//Threadthread2=newThread(this);
//以这个完成了Runnable接口中run()办法的类为参数创立Thread类的线程实例
ThreadUseRunnable(){}//机关函数
publicvoidrun()
{
System.out.println("我是Thread类的线程实例并以完成了Runnable接口的类为参数!");
System.out.println("我将挂起1秒!");
System.out.println("回到主线程,请稍等,方才主线程挂起大概还没醒过去!");
try
{
Thread.sleep(1000);//挂起5秒
}
catch(InterruptedExceptione)
{
return;
}
//假如该run()办法按次实行完了,线程将主动停止,而不会被主线程杀失落
//但假如休眠工夫太长,则线程还存活,大概被stop()杀失落
}
}
//该程序可做的修正如改休眠工夫或优先级setPriority()
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net网页编程里有这些工具吗?要简单多少?。 |
|