为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
深入浅出Java多线程_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

深入浅出Java多线程

Arthur JAVA开发工程师
难度入门
时长 4小时 0分
  • Thread.interrupt()不会停止线程,不会使中断状态改变 后加this.isInterrupted()检验,可使线程结束 不应使用sleep,join;中断状态被清除
    查看全部
  • long time=System.currentTimeMillis(); while ((System.currentTimeMillis()-time<1000)){ } 相当于Thread.sleep(1000);
    查看全部
  • java api ctrl+F 调出搜索
    查看全部
  • 正确停止线程 使用退出标志 keeprunning
    查看全部
  • 方法上有横线 旧方法,不提倡使用
    查看全部
  • 不能用stop停止线程
    查看全部
  • 进程是线程的集合
    查看全部
  • 进程:程序的执行 持有资源和线程
    查看全部
  • 进程 程序的执行过程 持有资源和线程 资源就是内存 可以共享内存,共享文件 线程与进程是字母关系 一个进程可以有多个线程 线程就是一个正在运行应用程序中的某一项任务或方法 线程之间可以 互斥 同步 互斥 当多个线程访问同一个资源的时候 只要有一个线程正在访问中其它的线程就需要等待
    查看全部
  • interrupt初衷并不是停止我们的线程。 查询JAVA API文档 在java.lang包下,找到Thread,Ctrl+F找到interrupt(),找到三个。 interrupt() 中断线程 interrupted() 测试当前线程是否已经中断,注意这个方法是静态方法。 isInterrupted() 测试线程是否已经中断。后者两个方法返回的值都是布尔值。 在API中我们看到:如果线程在调用 Object 类的 wait() 、wait(long) 或 wait(long, int) 方法,或者该类的 join() 、join(long) 、join(long, int) 、sleep(long) 或 sleep(long, int) 方法过程中受阻,则其中断状态将被清除,它还将收到一个 InterruptedException 。 在这里首先我们看到API中interrupt()方法中断线程是有条件的,在API中提示如果以前的条件都没有保存,才会将该线程的中断状态设置。此时调用后面的interrupted()或者isInterrupted()将返回一个布尔值的变量true来表示线程被中断。 如果使用了join方法或者sleep方法使得线程阻塞中断的情况下,使用interrupet会使得线程的中断状态被清除,并且当前的线程将会收到一个InterruptedException,这代表如后面再调用interrupted或者isInterrupted方法将不会得到一个正确的值。这就是为什么我们在使用join方法或者sleep方法需要用try-catch语句包围来捕获这个InterruptedException异常的原因。在使用join或者sleep方法时,一旦其它或当前线程调用了interrupted()方法,它将会收到一个异常。这些被阻塞的线程因为某些原因需要被唤醒,比如外部发生了中断,它需要响应,这时它就通过抛出异常的方式来使我们有机会做出一些响应。所以interrupt并不能正确的停止我们的线程。
    查看全部
  • 一、错误一:stop()方法 1、not stop:stop()方法会使线程戛然而止 2、使程序突然中止,无法完成完整的业务步骤,也无法进行清理工作 二、错误二:interrupt()方法 1、interrupt()方法只能设置interrupt标志位(且在线程阻塞情况下,标志位会被清除,更无法设置中断标志位),无法停止线程 三、正确方法:设置退出标志 1、使用退出标志位来停止while循环 2、完成最后一次业务后跳出while循环后,之后进行一些清理工作 [ 收起全文 ]
    查看全部
  • 线程的创建:Thread() Thread(String name) Thread(Runnable target) Thread(Runnable target,String name) 线程的方法: void start()启动线程 static void sleep(long millis) static void sleep(long millis,int nanos)线程休眠 void join() void join(long millis) void join(long millis ,int nanos) 使其他线程等待当前线程终止 static void yield() 当前运行线程释放处理器资源 获取线程的引用static Thread currentThread() 返回当前运行的线程引用
    查看全部
  • 进程(任务)的执行过程 动态性 持有资源(共享内存,共享文件)和线程
    查看全部
  • Thread常用方法
    查看全部
  • Thread常用方法
    查看全部

举报

0/150
提交
取消
课程须知
本课程的学习,需要小伙伴们具有面向对象基础知识及 Java 语言基础。如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、Java 中如何使用线程 2、什么是争用条件 3、线程如何交互
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!