java中终止程序的执行?
在java程序中,可以使用java.lang.System的exit方法来终止程序的执行,但是使用exit方法的本质是终止了JVM的运行,如果同时运行了另外一个程序,使用exit方法同样也会使该程序也终止,要避免此种情况可以使用interrupt()来中断退出一个独立运行的过程。
对于多线程程序,必须要关闭各个非守护线程。只有在程序非正常退出时,才使用exit方法退出程序。
java多线程为什么弃用stop和suspend?
stop和suspend都有一些共同的点:都试图专横的控制一个给定了的线程的行为.从JDK1.2开始,这两个方法都被弃用了.stop天生就不安全,而经验告诉我们呢suspend方法会经常导致死锁。stop这个方法将终止所有未结束的方法,包括run方法。
c# 线程,其他信息: 线程正在运行或被终止;它无法重新启动?
你先看下MSDN 上对abort方法的介绍 调用此方法后 线程不一定或者根本不中止 如果成功中止 那就可以重新start 了 如果没中止掉就start 的话 提示异常:线程正在运行或被终止;它无法重新启动。
线程池,怎么停止线程池中的线程?
1.自然终止。
你的线程执行完它启动时运行的方法,就自然终止了。适用于单个或多个一次性任务。如果是多个,这种情况推荐线程池。把任务写成线程池的Task。
2.有个管理线程,去调用工作线程的workingThread.Interrupt()方法。前提是,用一些同步机制防止工作线程的工作做一半被扔那了。
这种办法适用于循环等待某些任务的线程,比如TCPListener的循环Accept的线程或者其它响应消息的线程,或者接收/处理心跳消息的线程。
解析C/C++中如何终止线程的运行?
终止线程有三种方法:1.线程可以在自身内部调用AfxEndThread()来终止自身的运行2.可以在线程的外部调用BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode )来强行终止一个线程的运行,然后调用CloseHandle()函数释放线程所占用的堆栈3.第三种方法是改变全局变量,使线程的执行函数返回,则该线程终止。unsigned long __cdecl _beginthread (void (__cdecl *) (void *), unsigned, void *)
;void __cdecl _endthread(void)
;unsigned long __cdecl _beginthreadex(void *, unsigned, unsigned (__stdcall *) (void *), void *, unsigned, unsigned *)
;void __cdecl _endthreadex(unsigned);找到的一些资料,希望有点帮助,要不你代码贴点出来
如何确保main()方法所在的线程是Java程序最后结束的线程?
要实现这个情况,必须知道以下几点
1、java中线程的结束是由run方法运行完成后自动结束的
2、在main线程(主线程)中,需要得到所有线程的引用。
3、知道jdk提供的CountDownLatch的用法
例子如下:
public static void main(String[] args) throws InterruptedException
{
//CountDownLatch作为计数器纪录有几个线程,例如有2个线程
CountDownLatch latch=new CountDownLatch(2);
Worker worker1=new Worker( latch);
Worker worker2=new Worker(latch);
worker1.start();// 启动线程
worker2.start();//
//等待所有工人完成工作
latch.await();
System.out.println("all work done at "+sdf.format(new Date()));
}
class Worker extends Thread
{
private CountDownLatch latch;
public Worker(CountDownLatch latch)
{
this.latch = latch;
}
public void run()
{
xxxxx
//在run方法结束之前,讲线程计数器减一
latch.countDown();
}
}

