`
shi1870000
  • 浏览: 5347 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

黑马程序员——线程

阅读更多

------- android培训java培训、期待与您交流! ----------

 

                  黑马程序员——线程

 

概念:CPU在瞬间不断切换去处理各个线程)

进程:指一个内存中运行的应用程序

线程:指在同一个进程中同时运行的多个任务。

进程与线程的区别

<!--[if !supportLists]-->1、<!--[endif]-->进程有独立的进程空间,进程中的数据存放空间(堆内存和栈内存)是独立的。

<!--[if !supportLists]-->2、<!--[endif]-->线程的堆内存是共享的,栈内存是独立的,线程消耗的资源也比进程小,相互之间可以相互影响。

创建线程的两种方式

<!--[if !supportLists]-->1、<!--[endif]-->继承Thread类,覆写run()方法,创建子类对象的同时线程也被创建

通过调用start()方法开启线程。

<!--[if !supportLists]-->2、<!--[endif]-->实现Runnable接口,覆盖接口中的run()方法,

通过Thread类创建线程,并将实现了Runnable接口的子类对象作为参数传递给Thread类的构造函数,最后Thread类对象调用start()方法开启线程。

Thread类中的run()与start()方法的区别:

run():在本线程内调用该Runnable对象的run()方法,可以重复多次使用。

Start():启动一个线程,调用该Runnable()对象的run()方法,不能多次启动一个线程。)

两种创建方式的比较:

继承thread类:简单,不能再继承其他类,同资源不能共享。

实现Runnable接口:多线程共享一个目标资源,适合多线程处理同一份资源。

还可以继承其他类,也可以实现其他接口。

控制线程

join()方法:调用join方法的线程对象强制运行,该线程强制运行期间,其他线程无法运行,必须等到该线程结束其他线程才可以运行。

Daemon:后台线程,处于后台运行,任务是为其他线程提供服务,也称为”守护线程“或”精灵线程“,JVM的垃圾回收就是典型的后台线程。

Sleep线程休眠:然执行的线程暂停一段时间,进入阻塞状态

控制线程优先级:setPriority()MAX_PRIORITY 10 MIN_PRIORITY 1 NORM_PRIORITY 5

Yield线程礼让:暂停当前正在执行的线程对象,并执行其他线程。

Thread的静态方法,可以是当时的线程暂停,但不会阻塞该线程,而是进入就绪状态,所以完全有可能:某个线程调用了yield()之后,线程调度器又把他调度出来重新执行。)

多线程安全问题

原因:当多条语句在操作同一个线程共享数据是,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程参与进来执行,导致共享数据的错误。

解决方法:同步代码快,同步方法,同步锁

关键字:wait():让当前线程放弃监视器进入等待,知道其他线程调用同一个监视器并调用notify()或notifyAll()为止。

Notify()唤醒同一个对象监视器中调用wait()方法的第一个线程。

notifyAll():唤醒在同一个对象监视器中调用wait()方法的所有线程。

Condition对象:

Condition对象通过Lock对象的newCondition()方法创建,

Await(),sigal(),signalAll()

分享到:
评论

相关推荐

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--利用FinalHttp实现多线程断点续传 |--加密之MD5 |--动画Animation详解 |--动画之view左右抖动 |--动画之移动动画 |--动画之组合动画 |--动画之缩放动画ScaleAnimation |--反序列化对象 |--发送短信 读天气 调音量...

    黑马程序员入学Java知识——精华总结

    含面向对象,异常处理和常用类,线程技术,集合框架,IO操作,网络编程,文件操作,反射机制,

    黑马程序员入学Java知识——精华总结.doc

    程序员编写代码,计算机执行这些代码,最终产生预期的结果。 2. **Java语言的特点**: - **简单性**:Java简化了C++的一些复杂特性,如指针,使得初学者更容易上手。 - **面向对象**:Java强调类和对象,支持封装...

    黑马程序员_(适合初学者入门的Java基础视频)

    "黑马程序员_(适合初学者入门的Java基础视频)"是一套专为初学者设计的Java基础教学课程,旨在帮助零基础的学习者逐步掌握Java编程的基本概念和技能。 该视频教程涵盖了Java的基础知识,包括: 1. **环境搭建**:...

    黑马程序员 hibernate 2016版讲义和笔记(4天全)

    《Hibernate技术深度剖析——基于黑马程序员2016版讲义与笔记》 Hibernate,作为Java领域中的一个著名持久化框架,为开发者提供了强大的对象关系映射(ORM)功能,极大地简化了数据库操作。本资料集是黑马程序员...

    黑马程序员Java基础视频辅导班Day01

    ### 黑马程序员Java基础视频辅导班Day01知识点总结 #### Java的跨平台特性与JVM 1. **Java的跨平台性**:Java语言能够实现跨平台运行的关键在于Java虚拟机(JVM),即Java代码可以在任何安装了对应JVM的操作系统上...

    《Android移动开发案例教程》_源代码A

    这本书由黑马程序员编著,是工业和信息化“十三五”人才培养规划的重要组成部分,因此它具有权威性和实用性。源代码A提供了与教材内容对应的实践案例,帮助读者通过动手实践来巩固理论学习。 本书分为多个章节,每...

    2018-2019年黑马最新版Java程序员面试宝典+题库pdf

    《2018-2019年黑马最新版Java程序员面试宝典+题库pdf》是一份集合了近年来Java编程领域重点知识和面试常见问题的综合资源。这份资料主要针对初级Java程序员,旨在帮助他们巩固基础知识,掌握面试技巧,以便在求职...

    java7源码-Java-concurrent:Java并发编程

    黑马程序员——Java异步课程源码 plugin Lombok logback.xml 说明 课堂代码主要在 case_java8 子模块内,按章节划分, io.github.hank.java.concurrent.n2 - 同步与异步 io.github.hank.java.concurrent.n3 - Java...

    初学Java傻瓜版-第2版

    11. **多线程**:掌握如何创建和管理线程,理解同步和互斥的概念,以及如何避免线程安全问题。 12. **Java API和库**:介绍Java标准库,包括常用的类和方法,如何利用这些资源加速开发。 此外,书中还可能包含实践...

    Android高仿拼多多分类列表.zip

    首先,我们来看看项目的标签——"安卓源码-生活应用"。这表明该项目是Android应用程序的源代码,特别关注于生活服务类应用。在实际开发中,生活应用通常需要处理大量的数据展示、用户交互和网络请求,因此,这个项目...

    Java程序设计任务驱动式教程

    8. **多线程**:理解线程的概念,掌握线程的创建、同步、通信等技术。 9. **网络编程**:基础的Socket编程,了解TCP和UDP协议,以及如何创建服务器和客户端程序。 10. **泛型**:理解泛型的作用,学会在类、接口、...

    Hibernate5.0-4天学习笔记.rar

    《Hibernate5.0四日学习精粹:JavaEE49期黑马程序员教程解析》 Hibernate,作为Java领域中广泛使用的对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以专注于业务逻辑,而无需过多关注底层SQL的...

    毕向东静态06

    在"黑马程序员_毕向东_Java基础视频教程第06天-09-面向对象(单例设计模式).avi" 这个文件中,毕向东老师可能会详细讲解以下内容: 1. **字符串基础**: - 字符串对象的创建:通过`new String()`或字面量`"abc"`。 ...

    文件文件文件文件文件

    在压缩包子文件的文件名称列表中,我们看到“08_黑马程序员_张孝祥_Java基础加强_java5的静态导入与编译器语法设置.avi”。这个文件名暗示了一个关于Java编程的教学视频,具体是关于Java 5的一个特性——静态导入...

    java视频教程_黑马Java零基础辅导班[第二期]09天课件源码

    《Java编程之旅:黑马程序员零基础辅导班课程详解》 在IT行业中,Java语言以其强大的跨平台能力和丰富的库支持,始终占据着重要的地位。对于初学者来说,掌握Java开发技术是进入这个领域的关键一步。本教程针对零...

    八股文知识点汇总——Java面试题指南

    以上只是Java面试题的一部分,涵盖了许多基础知识,对于Java程序员来说,深入理解这些概念和原理对于职业发展至关重要。其他面试题如集合、异常处理、IO/NIO、反射、序列化、注解、多线程并发、JVM优化、数据库技术...

    Java课程设计(网络编程/GUI/JDBC):学生成绩管理系统-docx文档

    参考教材涵盖了Java编程的经典著作,包括张思民、Bruce Eckel、郎波、关东升、孙卫琴和黑马程序员等作者的书籍,为学习者提供了丰富的学习资源。 评价标准包括但不限于: - 针对课题运用面向对象思想提出解决方案的...

Global site tag (gtag.js) - Google Analytics