多线程和并发
zs1342084776
这个作者很懒,什么都没留下…
展开
-
线程基本概念
进程:一个正在运行的程序拥有该程序运行的所有资源,包括资源的分配和任务的调度。线程:在进程中负责具体代码的执行,一个进程至少有一个线程单线程:在整个程序中只有一个线程,这个线程为主线程多线程:整个程序不止一个线程,除了主线程其它为子线程并发:多个任务独立执行,一起执行同步:同一时刻只能执行一个任务,该任务执行完成之后才能执行下一个任务异步:一个线程中多个任务同时执行,一起执...原创 2019-08-08 11:40:41 · 302 阅读 · 0 评论 -
线程死锁
package com.vince;/** * 多线程要进行资源的共享,就需要同步,但同步过多,就可能造成死锁 * 死锁的操作一般是在程序运行的时候才有可能出现 * 线程死锁:在一个同步方法中调用了另一个对象的同步方法,可能产生死锁 */public class DeadThreadDemo { public static void main(String[] args)...原创 2019-08-11 09:33:12 · 117 阅读 · 0 评论 -
生产者与消费者应用案例
package com.vince;/** * 两个线程协同工作,先生产,再消费 * wait():当前线程停止运行,被同一个线程锁的其它线程唤醒之后才能接着运行 * notify(): 唤醒同一个同步锁中某一个wait()锁 * * sleep和wait的区别: * sleep: 让线...原创 2019-08-11 11:08:03 · 535 阅读 · 0 评论 -
实现线程的两种方式和线程休眠
package com.vince;/** *线程的休眠 * 在当前线程的执行中,暂停指定的毫秒数,释放CPU时间片 * millis:以毫秒为单位的睡眠时间长度 * InterruptedException:如果任何线程中断当前线程,当抛出此异常时,当前线程的中断状态将被清除 * Thread.currentThread(): 获取当前线程 * *//** * 继承...原创 2019-08-11 11:15:23 · 4411 阅读 · 0 评论 -
join()方法和中断线程
中断线程: 自定义标记的方式package com.vince;/** * Thread.currentThread():获取当前线程 * 中断线程: * 自定义标记的方式 */public class ThreadDemo2 { public static void main(String[] args) { //实现r...原创 2019-08-11 11:53:37 · 402 阅读 · 0 评论 -
守护线程—优先级和其它方法
package com.vince;/** *long getId():返回该线程的标识符 * String getName(): 返回该线程的名字 * void setName(String name):改变线程名称,使之与参数name相同 * boolean isAlive():测试线程是否处于活动状态 * void setPriority(int newPriority):更...原创 2019-08-11 14:45:42 · 339 阅读 · 0 评论 -
同步 实现同步的三种方式
/** * 多线程共享数据:多个线程有可能同时处理同一个资源 * 同步:多个线程在同一时间段内只能有一个线程执行指定代码,其它线程要等此线程执行完成之后才可以继续执行 *//** * 1.多线程共享数据时会发生线程不安全的情况 * 2.多线程共享数据必须使用同步 * 3.实现同步的三种方式: * 1)同步代码块 * synchronized(要同步的对...原创 2019-08-11 15:04:26 · 10504 阅读 · 0 评论 -
线程生命周期和线程池
线程池: 帮助我们管理线程,我们只需要将需要执行的任务交给线程池。 线程池会根据任务的个数,执行时长,将不同的任务交给线程池中的线程来执行。 java里面线程池的顶级接口是Executor, 是一个执行线程的工具。 线程池接口是ExecutorService package com.vince;import ja...原创 2019-08-11 15:54:31 · 324 阅读 · 0 评论