了解下JAVA的怎样中断java线程
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。简介
在Java的多线程编程中,java.lang.Thread范例包括了一些列的办法start(),stop(),stop(Throwable)andsuspend(),destroy()andresume()。经由过程这些办法,我们能够对线程举行便利的操纵,可是这些办法中,只要start()办法失掉了保存。
在Sun公司的一篇文章《WhyareThread.stop,Thread.suspendandThread.resumeDeprecated?》中具体解说了舍弃这些办法的缘故原由。那末,我们事实应当怎样中断线程呢?
倡议利用的办法
在《WhyareThread.stop,Thread.suspendandThread.resumeDeprecated?》中,建议利用以下的办法来中断线程:
private volatile Thread blinker;
public void stop() {
blinker = null;
}
public void run() {
Thread thisThread = Thread.currentThread();
while (blinker == thisThread) {
try {
thisThread.sleep(interval);
} catch (InterruptedException e){
}
repaint();
}
}
关于利用volatile关头字的缘故原由,请检察http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#36930。
当线程处于非运转(Run)形态
当线程处于上面的情况时,属于非运转形态:
* 当sleep办法被挪用。
*当wait办法被挪用。
*当被I/O堵塞,多是文件大概收集等等。
当线程处于上述的形态时,利用后面先容的办法就不成用了。这个时分,我们可使用interrupt()来冲破堵塞的情形,如:
public void stop() {
Thread tmpBlinker = blinker;
blinker = null;
if (tmpBlinker != null) {
tmpBlinker.interrupt();
}
}
<p>
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 是一种突破用户端机器环境和CPU 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
页:
[1]