为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
深入浅出Java多线程_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

深入浅出Java多线程

Arthur JAVA开发工程师
难度入门
时长 4小时 0分
  • 1:线程的互斥是指,在同一时间关键数据只能有一个线程访问<br> 2:线程互斥的实现有synchronized关键字来实现,类似于给对应的代码加锁,只有获得锁的线程才能运行此段代码 3:线程的同步是指,线程间的一种通信控制,一个线程完成了某事后通知另一个线程可以进行下面的事情了 4:线程同步的实现有wait(),notify(),notifyall()这几个方法来实现,这几个方法都是属于object类,并不是thread类
    查看全部
  • 通过lockObject的wait方法(注意:wait的线程被存放在wait set 中)和notifyAll方法实现同步。 步骤: 1.互斥:同一时间,只能有一个线程访问数据 2.同步:通信机制;一个线程完成,以某种方式通知其他线程 3.锁的概念:private final Object lockObj = new Object(); 4.互斥实现方式:synchronized关键字 synchronized(lockObj){---执行代码----}加锁操作 lockObj.wait();线程等待状态,以避免线程持续申请锁,不去竞争cpu资源 lockObj.notifyAll();唤醒所有lockObj对象上等待的线程
    查看全部
  • 1:线程的特点,共享同一进程的资源,同一时刻只能有一个线程占用CPU<br> 2:由于线程有如上的特点,所以,就会存在多个线程争抢资源的现象,就会存在争用条件这种现象<br> 3:为了让线程能够正确的运行,不破坏共享的数据,所以,就产生了同步和互斥的两种线程运行的机制<br> 4:线程的互斥指:线程的运行隔离开来,互不影响,使用synchronized关键字实现互斥行为,此关键字即可以出现在方法体之上也可以出现在方法体内,以一种块的形式出现,在此代码块中有线程的等待和唤醒动作,用于支持线程的同步控制<br> 5:线程的同步指:线程的运行有相互的通信控制,运行完一个在正确的运行另一个
    查看全部
  • 争用条件定义:
    查看全部
  • Ps:一个线程在阻塞状态下(例如sleep),此时interrupt的话,将会产生两个结果: 1、进程的interrupt状态被清除(cleard)而非被设置(set)。 2、sleep方法会抛出异常。
    查看全部
  • 正确的停止线程的运行<br> 1:首先使用线程自带的方法stop(),是不正确的,原因如下:此方法会导致线程戛然而止,我们不清楚线程完成了什么,没完成什么,也没有时间来完成对应的线程运行的清理工作。 2:正确停止线程的方法是,在线程执行中设置状态标识,通过控制此状态标识,来控制线程的正常完整的结束,另外,volatile关键字是保证线程变量对外可见的标志,通过此关键字修饰的状态变量,才能在别的线程中被正确的赋值。 [ 查看全文 ]
    查看全部
  • 1:volatile关键字——表示此线程可以正确的读取其他线程写入的值,就是创建一个线程A,并且在线程A中有一个变量是使用volatile关键字修饰的,那么在线程B中修改线程A中的这个变量的值,可以保证线程A能够正确的读取 2:yield()方法——是指当前线程让出处理,允许下一个线程占用处理器的时间执行。
    查看全部
  • 1:创建线程的方法有两种<br> 1-1:继承Thread类<br> 1-2:实现Runnable接口<br> 2:线程中的方法比较有特点,比如:启动(start)、休眠(sleep)、停止等,多个线程是交互执行的(CUP在某个时刻 只能执行一个线程,当一个线程休眠了或者执行完毕了,另一个线程才能占用CPU来执行),因为这是CPU的结构来决 定的,在某个时刻CUP只能执行一个线程,不过速度相当快,对于人来讲可以认为是并行执行的。 在一个.java文件中,可以有多个类,但只能有一个public类。 这两种创建线程的方法本身没有什么不同,一个是实现Runnable接口,一个是继承Thread类。而使用实现Runnable接口这种方法:1.可以避免Java的单继承的特性带来的局限性;2.适合多个相同程序的代码去处理同一个资源的情况,把线程同程序的代码及数据有效分离,较好地体现了面向对象的设计思想。开发中大多情况下都使用实现Runnable接口这种方法创建线程。 实现Runnable接口创建的线程最终还是要通过将自身实例作为参数传递给Thread然后执行 语法:Thread Actress = new Thread(Runnable target, String name) 例如:Thread actressThread=new Thread(new Actress(),"Ms.Runnable"); actressThread.start(); } }
    查看全部
  • 隋唐演义三个对象: 军队-ArmyRunnable; 英雄人物-KeyPersonThread; 舞台-Stage
    查看全部
  • Thread常用方法: JAVA对线程的支持: Thread这个类。Runnable这个接口
    查看全部
  • 进程: 程序(任务)的执行过程 持有资源(共享文件、共享内存)和线程 线程: 进程中的一个任务。是系统中的最小的执行单元。同一进程中有多个线程。 线程之间的通信叫做交互,它分为互斥和同步。
    查看全部
  • 利用多线程,可以帮你简化模型,编写出功能强大的代码,但是考虑不周全也会让你下地狱。如何学好多线程。需要长期的实践过程。
    查看全部
    0 采集 收起 来源:慕课感言

    2016-03-21

  • 线程交互的方式 互斥同步
    查看全部
  • 线程之间的通讯
    查看全部
  • 进程由线程组成
    查看全部

举报

0/150
提交
取消
课程须知
本课程的学习,需要小伙伴们具有面向对象基础知识及 Java 语言基础。如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、Java 中如何使用线程 2、什么是争用条件 3、线程如何交互
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!