没有合适的资源?快使用搜索试试~ 我知道了~
首页java人家\Java第三十七讲总结-线程.doc
java人家\Java第三十七讲总结-线程.doc
需积分: 9 56 浏览量
更新于2023-03-03
评论
收藏 45KB DOC 举报
小贝程序员生活\课件\java\java人家\Java第三十七讲总结-线程.doc 小贝程序员生活\课件\java\java人家\Java第三十七讲总结-线程.doc 小贝程序员生活\课件\java\java人家\Java第三十七讲总结-线程.doc
资源详情
资源评论
资源推荐

第三十七节课:
程序是一段静态的代码,是应用程序执行的蓝本;而进程是程序的动态执行过程,对
应于从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展
到消亡的过程(进程可以看是程序的动态表现形式);线程是比进程更小的执行单位,一
个进程在执行的过程中,可以产生多个线程,形成多条执行线路,每条线路,即每个线程
也有它自身的产生、存在和消亡的过程,也是一个动态的概念。
静态的程序对应于动态的进程,同时,进程之中又可以包括多个线程,每个进程都会
有其专用的内存区域(即程序在编写时并不占内存,CPU 此时并没有运算这段代码,但一
旦执行这段代码,即 CPU 运算这段代码,也即产生一个进程,此时的这段代码,严格说应
该是这个进程就会占用一定的内存,而且所占用的内存是专用的,不能有其他程序同时使
用该内存区域),而线程间可以共享相同的内存单元(包括代码和数据)(线程如果就绪
start()后,它们之间就会一直都不停地互相争抢 CPU,哪个线程抢到 CPU,那么就执行哪
个线程里面的 run()方法,直到 run()方法执行完毕,就相当于这些线程消亡,即结束;
java 里的 main 主方法是程序的入口,也是所有线程的超级主线程 ,所以各个线程中只要
有一个线程中有主方法,这些线程就可以执行,同时,作为主线程,通常都是最后完成执
行,因为它要执行各种关闭动作,所以有时即使主方法里的代码已经执行完毕,也会等到
子线程都执行完毕才会将自己关闭,同时也可以显式地调用主线程的 stop()方法来强制关
闭主线程,但一般不赞成这样做),并利用这些共享单元来实现数据交换、实时通信和必
要的同步操作。
主线程示例:
public class MainThread{//这里只有一个主线程,是一个单线程的进程。
public static void main(String[] args){
Thread thread = Thread.currentThread();//获得当前线程,即主线程;该方法是一个
静态 static 方法,写在哪个线程里面,它的效能就是针对哪个线程。
thread.setName(“主线程”);//改变线程的内部名称,可以用 getName()来获得线程对象
的名称;主线程的默认名称是 main,子线程的默认名称按照 CPU 的对其本身的运算次序,
分别为 Thread-0、Thread-1 等,依此类推。
try{
for(int i = 0; i < 10;i += 2){
System.out.println(i + “ “ + thread);//这里直接打印线程对象,相当于调用该对象的
toString()方法,该方法返回线程的字符串表示形式,包括线程名称、优先级和线程组。
Thread.sleep(1000);//令当前线程休眠 1000 毫秒,在这里表示在每次输出后都暂停
1000 毫 秒 , 即 每 隔 一 秒 , 输 出 一 次 ; 该 方 法 如 被 打 断 会 抛 出 一 个 异 常
InterruptedException。
}
}
catch(InterruptedException e){
//sleep()方法被打断时就会抛出该异常,比如 thread.interrupt(),写在 Thread.sleep()
下面,就会打断线程的“休眠”,使得程序直接跳到 catch 块,并执行该块内部的代码。
System.out.println(“Hey! I was interrupted.”);
}
}
}
两种方法创建子线程:
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0