A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

线程的生命周期分为哪几个阶段?

8 个回复

倒序浏览
新建,运行,中断,死亡
回复 使用道具 举报
新建,就绪,运行,阻塞,死亡
回复 使用道具 举报
还没学到那里
回复 使用道具 举报
新建,就绪,运行,阻塞,死亡。
新建就是创建一个新的线程对象,如果此时调用 start() 方法会到就绪状态。
就绪是具备执行资格,不具备执行权。如果抢到CPU执行权就到运行状态。
如果此时调用 sleep() 或者 wait() 方法,则进入阻塞状态。
如果此时 run() 方法执行完毕或者调用 stop() 方法,则进入死亡状态。
在阻塞状态下,调用 weak() 或 notify() 方法就重新回到就绪状态。
死亡状态就是线程对象变成垃圾,等待被垃圾回收器回收。
回复 使用道具 举报
四种状态:新建,运行,中断,死亡  书本上有哦
回复 使用道具 举报
1、什么是多线程?进程和线程的区别是什么?  多线程就是应用程序的多条执行路径。  进程:正在运行的应用程序,每个进程的具备独立的运行空间。  线程:是进程的执行单元,执行路径。如果是多个线程,那么,这多个线程共享同一个进程资源。     2、启动线程调用的是run()还是start()方法?run()和start()的区别是什么?(*面试题)          启动线程调用的是start()         run()封装了被线程执行的代码,start()是启动线程并调用run()方法。     3、多线程有几种实现方案?分别是什么?如何操作?(*面试题)          多线程有两种实现,分别是:          1),继承Thread类                 自定义类继承Thread类,在类中重写run()方法,测试类中创建自定义类对象,并调用start()方法          2),实现Runnable接口                 自定义类实现Runnable接口,重写run()方法,测试类中创建自定义对象,                 创建Thread对象,把自定义对象作为构造参数传递。调用Thread类的start()方法。     4、线程的生命周期? (*面试题)          新建:        创建线程对象         就绪:        具备cup执行资格,没有执行权,随时准备执行         运行:        具备执行资格,执行权,执行run()中的代码         堵塞:        是当线程运行到符合某个我们定义的条件时,它会停止下来等待唤醒         死亡:        run()结束了    5、多线程为什么会出现安全问题?怎么解决呢?(*面试题)  如果满足以下条件,那么就会出现安全问题:          A:是多线程程序。         B:有共享的数据。         C:针对共享数据有多条语句操作。  只要我们把多线程环境中,把操作共享数据的操作,变成单线程就没有问题了。 Java针对这种情况,就提供了同步技术:                  A:同步代码块         B:同步方法         C:JDK5以后的Lock锁    6、同步的锁对象分别是?(*面试题)          代码块:任意对象          方法:this          静态方法:类名.class     7、sleep()和wait()的区别?(*面试题)          sleep():必须指定时间,不释放锁对象。          wait():可以指定时间,也可以不指定。释放锁对象。     8、线程死锁是什么,为什么有死锁,怎么解决死锁?(*面试题)          为了解决程序因占用资源,出现资源争抢,而出现的程序进入等待的状态(死锁)。         举例:有A和B两个线程,有CD 两把锁, A和B嵌套CD锁,A线程中有C,D锁,B线程中有D C两把锁,当两个线程运行时,就可能会出现死锁导致 程序停滞的情况。         怎么解决:真正意义上来说,死锁是不能被解决的,死锁是多线程中的一个需要避免的重大的问题,当我们在编写程序时,可以给共享的资源加上另外一 个把锁,控制资源的动态,同时可以设置线程的优先级使线程之间协调合理的利用CPU的时间。     9、线程间的通信是什么?          不同种类的线程针对同一个资源的操作。
回复 使用道具 举报
楼上中介的很清晰,感谢,学习了。
回复 使用道具 举报
新建,运行,中断,死亡
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马