【并发】Java多线程编程基础
文章平均质量分 62
IT码客
明日复明日,明日何其多,以此博文来约束自己,多学习,多总结。如不巧能帮助他人,实属本人之荣幸。
展开
-
java线程之sleep
翻译:https://www.journaldev.com/1020/thread-sleep-java简述Thread .sleep()方法用来暂停当前线程的执行,以毫秒为单位。还有另一个重载方法sleep(long millis, int nanos),它可以用来暂停当前线程的执行,可以指定毫秒和纳秒,允许的纳秒值在0到999999之间Thread.sleep()实例以...原创 2018-03-22 21:34:02 · 665 阅读 · 0 评论 -
Java线程之创建线程
翻译自:https://www.journaldev.com/1016/java-thread-example进程进程是一个自包含的执行环境,它可以被看成一个程序或应用程序。然而一个应用程序本身包含多个进程,Java运行时环境作为一个单独的进程运行,它包含不同的类和程序线程线程可以成为轻量级进程,一个进程包含很多线程,线程占用很少的资源在进程中创建和运行,线程共享进程的资源...原创 2018-03-21 22:16:19 · 275 阅读 · 0 评论 -
Java线程之如何分析死锁及避免死锁
什么是死锁java中的死锁是一种编程情况,其中两个或多个线程被永久阻塞,Java死锁情况出现至少两个线程和两个或更多资源。 在这里,我们将写了一个简单的程序,它将导致java死锁场景,然后我们将分析它。怎么实现死锁下面我们一起看一个简单的死锁事例,在主线程中每隔5秒钟启动一个线程,每个线程的执行时间是3秒钟package com.lkf.mulithread;...原创 2018-03-31 16:23:08 · 16861 阅读 · 2 评论 -
Java线程之Dump
什么是线程dumpJava Thread dump记录了线程在jvm中的执行信息,可以看成是线程活动的日志。Java线程转储文件有助于分析应用程序和死锁情况中的瓶颈。如何获取线程转储文件在这里,我们将学习为java程序生成线程转储的多种方法,这些指令对于linux操作系统是有效的,但是在windows中,这些步骤可能有些不同。1.使用VisualVM Profiler右...原创 2018-03-31 14:44:54 · 2984 阅读 · 0 评论 -
Java线程之FutureTask
简述FutureTask是Future接口的实现类,并提供了可取消的异步处理的功能,它包含了启动和取消(start and cancel)任务的方法,同时也包含了可以返回FutureTask状态(completed or cancelled)的方法。我们可以自定义一个Future任务,然后使用线程池执行器Java Thread Pool Executor 去异步执行任务。FutureT...原创 2018-03-25 16:24:08 · 219 阅读 · 0 评论 -
Java线程之Callable、Future
简述在多线程中有时候我们希望一个线程执行完毕后可以返回一些值,在java5中引入了java.util.concurrent.Callable接口,它类似于Runnable接口,但是Callable可以有返回值。Java Callable接口使用通用定义对象的返回类型,executor类提供了在线程池中执行Java调用的有用方法,由于可调用任务并行运行,所以我们必须等待返回的对象。...原创 2018-03-25 14:35:32 · 251 阅读 · 0 评论 -
Java线程之Timer
简述java.util.Timer是一个定时器,用来调度线程在某个时间执行。在初始化Timer时,开启一个线程循环提取TaskQueue任务数组中的任务,如果任务数组为空,线程等待直到添加任务;当添加任务时,唤醒线程,提取数组中标记为1的任务,如果该任务状态为CANCELLED,则从数组中删除任务,继续循环提取任务TimerTaskTimerTask是一个抽象类,它...原创 2018-03-25 13:42:47 · 830 阅读 · 0 评论 -
Java线程之ThreadLocal
翻译:https://www.journaldev.com/1076/java-threadlocal-example?utm_source=website&utm_medium=sidebar&utm_campaign=Core-Java-Sidebar-Widget 简述ThreadLocal类用来提供线程内部的局部变量,这种变量在多线程环境下通过get或set方...原创 2018-03-24 21:53:56 · 264 阅读 · 0 评论 -
Java线程之synchronized
翻译:https://www.journaldev.com/1061/thread-safety-in-java 我们知道线程安全在Java中是一个非常重要的主题,当多个线程操作共享数据时,如果没有任何控制,将会产生数据不一致的问题。数据不一致的重要原因是,当更新一个变量的值时,是分三步完成的,第一获取变量值,第二对变量值进行更新,第三将修改后的变量值刷新到内存。下面我们用一个简单程序来...原创 2018-03-24 20:59:41 · 232 阅读 · 0 评论 -
Java线程之wait()、notify()、notifyAll()
翻译:https://www.journaldev.com/1037/java-thread-wait-notify-and-notifyall-example简述java中Objct对象包含三个方法用于线程之间对于资源锁状态进行通讯,这三个方法分别是wait()、notify()、notifyAll(),今天我们就来学习一下这三个方法的应用。 任何对象上调用这些方法的当前线程都应该...原创 2018-03-24 17:39:59 · 298 阅读 · 0 评论 -
Java线程之生命周期
简述以下类图展示了线程生命周期中不同的状态。我们可以创建一个线程并启动它,但是线程状态从Runnable、Running、Blocked等状态的变化取决于系统线程调度器,java本身并不能完全控制。 线程状态New(新建状态)当我们用new创建一个线程对象时,线程的状态是新建状态,这个状态并不代表线程已经执行了,只是Java编程中的一个内部状态Runnable(就...原创 2018-03-22 22:03:52 · 228 阅读 · 0 评论 -
Java线程之join
简述Thread类的join方法用来使main线程进入阻塞状态,进而等待调用join方法的线程执行,join有三个重载方法:public final void join()使主线程进入阻塞状态,直到调用join的线程执行完成,如果线程被中断将抛出InterruptedException异常public final synchronized void join(long milli...原创 2018-03-22 21:35:28 · 217 阅读 · 0 评论 -
Java基础线程系列大纲
## Java 多线程之 线程创建 ## Java 多线程之 Sleep ## Java 多线程之 Join ## Java 多线程之 生命周期 ## Java 多线程之 wait, notify and notifyAll ## Java 多线程之 Synchronized ## Java 多线程之 ThreadLocal ## Java 多线程之 线程转储(dump) ## J...原创 2018-03-21 22:33:32 · 423 阅读 · 0 评论