频道栏目
首页 > 资讯 > 其他 > 正文

java高级基础之多线程解析

18-07-26        来源:[db:作者]  
收藏   我要投稿

创建方法一继承Thread类

当子类无父类继承时且需要具有线程特性时 创建步骤 定义一个类继承Thread类 覆盖Thread类中的run方法 直接创建Thread的子类对象创建线程 调用start方法开启线程会自动调用线程的任务run方法执行。

创建方法二实现Runnable接口

定义类实现Runnable接口 覆盖接口中的run方法,将线程的任务代码封装到run方法中 通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数的参数进行传递 调用线程对象的start方法开启线程

注:实现Runnable接口的好处:

将线程的任务从线程的子类中分离出来,进行单独的封装,进行了单独的封装。按照面向对象的思想将任务封装成对象 避免了java单继承的局限性

获取线程名称

获取线程对象的名字 getName(); 获取当前正在运行的线程对象 currentThread()

线程状态

线程同步

多线程同步代码块 定义 使用synchronized关键字加上一个锁对象来定义一段代码,这就叫同步代码块 当同步代码块使用的锁对象是同一个锁时,他们就是同步的 注意事项 锁对象可以是任意对象,但是被锁的代码需要保证是同一把锁,不能用匿名对象,匿名对象每个线程不是共用一个锁。无法起到同步的作用。 多线程同步方法 定义 使用synchronized关键字修饰一个方法,该方法中所有的代码都是同步的 注意事项 静态的同步函数的锁是:字节码对象(类名.class;) 非静态的 同步函数的锁是:this 解决什么问题 当多个线程同时执行时某个线程还未完全执行完CPU就切换了线程,导致异常 什么时候使用 当多线程并发,有多段代码同时执行时,我们希望某一段代码执行的过程中CPU不要切换到其他线程工作,这是需要同步 如果两段代码是同步的,那么同一时间只能执行一段,在一段代码没执行结束之前,不会执行另外一段代码 怎么判断需要使用 线程间有共享数据 需要多次执行(有if,等循环) 死锁问题 多线程同步的时候,如果同步 代码嵌套,使用相同锁,就有可能出现死锁 所以尽量避免嵌套使用
相关TAG标签
上一篇:Gitlab管理学习之Gitlab服务器的维护实例
下一篇:盘点品牌网站建设的三个重要原因
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站