• Java多线程中的两个问题


     <STRONG>Java多线程中的两个问题<BR></STRONG>多线程中thread.stop()被废弃的原因:
    <P></P>实现时间差事件的解决办法: 【程序编程相关:<A href="http://www.autohm.com.cn/development/p377/J37746383.shtml" target=_blank>又学到了一个要注意的东西。java与pa</A>】
    <P></P>当调用thread.stop()方法时,该线程将释放先前其控制的所有资源,而在线程没有正常执行完毕之前强迫stop之后,这些资源可能处在一种不一致的状态,而这些处于不一致的状态的资源被其他的线程所使用之后,就可能会发生一些意想不到的错误. 【推荐阅读:<A href="http://www.autohm.com.cn/development/p377/J37746382.shtml" target=_blank>配置Middlegen-Hibernat</A>】
    <P></P>在主线程中设置一个状态变量,在响应线程执行时,先sleep()一个固定的时间段,之后检查主线程的这个状态,如果这个状态不同就执行不同的操作,或停止执行.<BR>test.java 【程序编程相关:<A href="http://www.autohm.com.cn/development/p377/J37746383.shtml" target=_blank>又学到了一个要注意的东西。java与pa</A>】
    <P></P>可以通过回调机制来实现响应线程对主线程变量的查看,例如: 【推荐阅读:<A href="http://www.autohm.com.cn/development/p377/J37746382.shtml" target=_blank>配置Middlegen-Hibernat</A>】
    <P></P>&nbsp; private volatile threadtest test; 【扩展信息:<A href="http://www.autohm.com.cn/development/p377/J37746384.shtml" target=_blank>Sun Java 2 Standard </A>】
    <P></P>public class test {
    <P></P>&nbsp; public boolean flag = true;
    <P></P>&nbsp; public test() {
    <P></P>&nbsp;&nbsp;&nbsp; test = new threadtest(this);
    <P></P>&nbsp; }
    <P></P>&nbsp; public static void main(string[] args){
    <P></P>&nbsp;&nbsp;&nbsp; test test = new test();
    <P></P>&nbsp;&nbsp;&nbsp; test.test.start();
    <P></P>&nbsp;&nbsp;&nbsp; test.flag = false;
    <P></P>&nbsp;&nbsp;&nbsp; test = null;
    <P></P>&nbsp; }
    <P></P>}
    <P></P>threadtest.java
    <P></P>public class threadtest extends thread{
    <P></P>&nbsp; test test;
    <P></P>&nbsp; public threadtest(test test) {
    <P></P>&nbsp;&nbsp;&nbsp; this.test = test;
    <P></P>&nbsp; }
    <P></P>&nbsp; public void run() {
    <P></P>&nbsp;&nbsp;&nbsp; try{
    <P></P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(1000);
    <P></P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (test.flag)
    <P></P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; system.out.println("ive waken up!");
    <P></P>&nbsp;&nbsp;&nbsp; }catch(exception e){
    <P></P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printstacktrace();
    <P></P>&nbsp;&nbsp;&nbsp; }
    <P></P>&nbsp; }
    <P></P>}

  • 相关阅读:
    实现一个简单的ConnectionPool
    并发连接MySQL
    C#里面滥用String造成的性能问题
    String.IndexOf
    C#代码中插入X86汇编
    正确理解Handle对象
    orleans发送广播消息
    log日志方法
    PHP 批量插入数据
    逻辑漏洞小结之SRC篇
  • 原文地址:https://www.cnblogs.com/encounter/p/2189081.html
Copyright © 2020-2023  润新知