![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java多线程
m0_61465063
这个作者很懒,什么都没留下…
展开
-
线程同步之synchronized
为了避免临界区静态条件的发生,可以使用阻塞时的解决方案:synchronized,即俗称的对象锁, 它采用互斥的方式让同一时刻至多只有一个线程能持有对象锁。 注意 虽然java中互斥和同步都可以采用synchronized关键字来完成,但它们还是有区别的 互斥是同一时刻只能有一个线程执行执行临界区代码。 同步时由于线程执行的先后,顺序不同,需要一个线程等待其它线程运行到某个点。 //synchronized加在对象上 package hello; import java.util.*; p原创 2022-01-26 08:33:37 · 209 阅读 · 0 评论 -
线程的状态
这里从javaAPI层面来描述,根据ThreadState枚举,分为六种状态 NEW线程被创建但是还没有调用start方法 RUNNABLE当调用了start方法之后,注意,javaAPI层面的RUNNABLE涵盖了操作系统层面的就绪状态,运行状态,和由于BIO(阻塞IO)导致的阻塞状态。 TERMINATED线程运行结束 BLOCKED TIMED_WAITING WAITING都是javaAPI层面对阻塞状态的细分,会在后面状态转换一节详述 状态练习 package hello; impo原创 2022-01-22 20:56:52 · 134 阅读 · 0 评论 -
线程常见方法
1线程停止 建议自己写一个线程停止的方法 package hello; import java.util.*; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent原创 2022-01-20 21:12:10 · 187 阅读 · 0 评论 -
java实现多线程的三种方法
可以继承Thread类也可以重写Runnable方法 class Test extends Thread{ public void run() { } } 建议使用实现Runnable,方便多个线程操作同一个对象,比如下面这个,但是这样写存在并发问题。这里只是举例说明多个线程操作同一个对象。并发问题在下面解决。 package hello; import java.util.*; public class Main implements Runnable{ private int .原创 2022-01-18 16:49:11 · 233 阅读 · 0 评论