zoukankan      html  css  js  c++  java
  • 多线程概念

    参考源:http://www.imooc.com/video/4241

    ====什么是进程?

    程序(任务)的执行过程,它持有资源(共享内存,共享文件)和线程

    ====什么是线程?

    线程是系统中最小的执行单元

    同一进程中有多个线程

    线程共享进程的资源

    作为计算机处理器,在同一时间,同一个处理器(或者叫同一个核)只能运行一条线程

    ====线程的交互

    ====Java对线程的支持

    主要体现在class Thread这个类和interface Runnable这个接口之上,他们都寄生于java.lang包。

    具体区别可以参考下面的一篇博客:

    http://developer.51cto.com/art/201203/321042.htm

    ====线程错误退出

    错误的退出方法:直接使用stop()方法

    ====线程的正确退出

    使用线程退出的标志。

    ====广为流传的错误退出方法

    1)使用interrupt()方法

    interrupt()方法的初衷并不事用于停止线程。用于中断线程。

    ====线程交互

    --什么是争用条件?

    当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted),这种现象称为争用条件。

    如上图中,线程1转移500,线程2转移900至energyBox中,预想转移后应该为6400,实际却是550。

    --互斥与同步

    互斥的实现:synchronized(intrinsic lock)

    同步的实现:wait()/notify()/notifyAll()

    ====什么是线程锁:

    三个和尚打水喝!打个比喻就是锁。拿到桶的人不会渴死,

    多线程就是你拿一会,我拿一会,

    线程等待就是一个和尚喝了一会,别的和尚在等,可能能喝到水。

    死锁就是三个和尚互相打架,都拽着对方的手谁都喝不到。

    睡眠就是一个和尚说我可以让别人先喝,自己去睡会觉去,回来后还得看别人的脸色。

  • 相关阅读:
    Android Studio代码自己主动检測错误提示
    uva 1567
    UWP 新手教程2——怎样实现自适应用户界面
    远程服务的使用场景
    本地服务和远程服务
    本地应用调用远程服务中的方法
    混合方式开启服务
    绑定服务抽取接口
    绑定服务调用服务里的方法
    bind绑定服务的生命周期
  • 原文地址:https://www.cnblogs.com/quchunhui/p/5357450.html
Copyright © 2011-2022 走看看