![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
追梦女孩Y2
这个作者很懒,什么都没留下…
展开
-
线程的同步
卖票产生的同步问题:当有多个线程对象去买票时出现ticket=-1的情况: 实现同步就利用Synchronized关键字,利用这个关键字来定义同步方法或者同步代码块,在同步代码块的操作里面只允许一个线程执行。 1.利用同步代码块进行处理 SynChronized(同步对象){ 同步代码操作 } 一般进行同步代码处理的时候可以采用当前对象this进行同步。 例如:利用同步代码块解决数据同步访问...原创 2020-03-26 12:33:28 · 98 阅读 · 0 评论 -
线程常用操作方法之强制执行礼让
一.线程的强制执行 线程的强制执行是指当满足于某些条件之后,某一个线程对象可以一直独占资源,一直到该线程程序执行结束。如果主线程和子线程交替执行,某个时间段需要主线程执行完毕再执行子线程,可以使用Thread类里面的join方法: 需要注意的是在线程强制执行的时候一定要获取强制执行线程对象之后才可以执行join() 二.线程的礼让 线程的礼让指的是先将资源让出去给别的线程先执行,线程的礼让可以使...原创 2020-03-21 21:25:11 · 361 阅读 · 0 评论 -
线程常用操作方法之线程的休眠
如果希望一个线程可以暂缓处理 ,就可以进入休眠状态。Thread类中定义的休眠方法如下: 进行休眠的时候可能会产生中断异常,中断异常是Exception的子类,所以必须要进行处理。 示例:观察休眠处理 package com.mythread.demo; public class ThreadSleep { public static void main(String[] args)...原创 2020-03-01 22:49:58 · 534 阅读 · 0 评论 -
线程常用操作方法之线程命名和取得
多线程主要的操作方法都在Thread类中,多线程的运行状态不确定,因此需要根据线程的名字来进行操作。 构造方法:public Thread(Runnable target,String name) 设置名字:public final void setName(String name) 取得名字:public final String getName() 对于线程对象的获得不能通过this获得,但是...原创 2020-02-29 22:24:30 · 168 阅读 · 0 评论 -
java多线程编程之Callable实现多线程
Runnable接口实现多线程有一个缺点就是执行完毕后无法获取一个返回值,从jdk1.5之后提出一个新的线程实现接口:java.util.concurrent.Callable接口。 首先看这个接口的定义: @FunctionalInterface public interface Callable<V>{ public V call() throws Exception; } ...原创 2020-02-28 18:00:30 · 331 阅读 · 1 评论 -
java多线程编程之Thread与Runnable关系
经过分析之后发现Runnable和Thread类都可以用来实现多线程,但是Runnable接口可以避免单继承的局限,而且可以更好地进行功能扩充。 但是两者之间又存在什么关系呢,从结构上观察两个的联系,打开Thread类的定义: public class Thread extends Object implements Runnable Thread类也是Runnable接口的子类,之前继承的Th...原创 2020-02-28 12:09:43 · 247 阅读 · 0 评论 -
java多线程编程之Runnable接口实现多线程
实现java.lang.Runnable接口 @FunctionalInterface public interface Runnable{ public void run(); } 通过Runnable实现多线程的主体类: class MyThread implements Runnable{ private String title; public MyThread(...原创 2020-02-27 21:31:11 · 458 阅读 · 0 评论