`
不打伞的蘑菇
  • 浏览: 14969 次
社区版块
存档分类
最新评论

JAVA的多线程入门知识小结

 
阅读更多

Java高级部分的多线程的部分小结:

        本人菜鸟,这是老师强行布置的课后作业,伤不起~~~~(>_<)~~~~哭哭哭

        个人小结,仅供自己复习,欢迎大家踊跃讨论,如有纰漏,还请大神们多多指教吐舌头

 

       一、程序、进程、线程之间相互概念:首先,程序是一个在硬盘中可以执行的代码集合。程序正在进行的部分就是进程,是程序某些个功能的的运行计算的集合。而线程是基于进程开辟的更小的能独立运行的单位。(此处有线程同步和异步的概念)。一个程序至少有一个进程,一个进程至少有一个线程。这里主要讲多线程。

 

       二、线程的创建和启动:分别有三个方法。

1.直接继承一个thread类。

2.实现一个接口类Runable类。(多用这个方法)因为一个类只能继承一个父类,但可以实现多个接口。

3.继承一个TimerTask。可以控制在多少时间后执行这个线程。

 

        三:同步和异步的概念:

线程的同步是指:线程需要执行多件事物,但一次只能做一件事。对于一个对象使用线程同步的概念时,是指一个线程在操作这个对象的时候,其他线程不能能对它进行操作。

线程的异步是指:多个线程同时进行,可以对同一个对象同时进行操作。所以说,线程同步是安全的,线程异步是不安全的。所以在某些地方需要让线程同步。

       实现线程的同步的两种方法:

        1.在需要同步的语句块或方法外面添加一个关键字:synchronized。(用完后会自动的释放锁定的对象)

        2.定义一个接口类:Lock。需要的步骤有:创建锁;上锁;需要被锁定的语句块;解锁。

 

         四、线程的状态
        新建(new Thread):当线程对象被创建的时候
        就绪(Runnable):当调用完线程的start()方法之后.等待系统的调用执行
        运行(Running):线程正在执行它的run()方法。
        阻塞(中断)(Not Runnable):当线程sleep()或者wait()的
        死亡(Dead)):线程run()方法执行完毕。

 

       五、.线程的通信:

线程的通信就是实现多个线程之间的资源共享和交换数据。一般是采取Object的wait( )和notify( )来完成。

但是这两个在使用的时候仅在Synchronized的方法中才能被调用。wait()让线程等待,进入阻塞状态,而notify()则是激活某个等待线程,其实就是撤销该线程的阻塞状态,从而使他们有机会再次运行。

 

        六、线程中暂停和死亡的方法不能够使用,所以在控制线程的暂停、继续和死亡的时候一般是定义两个Boolean类型的变量来控制线程的休眠或死亡状态。示例代码如下:

                                boolean isPause = false;// 是否暂停
                                boolean isStop = false;// 是否停止

                                 public void run() {
                                             while (!isStop) {

                                                              if (!isPause) {
                                                                            //需要在线程中执行的代码
                                                                                    //...
                                                                             }
                                                               try {
                                                                     Thread.sleep(10);
                                                               } catch (Exception e) {
                                                                       e.printStackTrace();
                                                                }
                                                    }
                                         }

 

            七、线程的优先级

            线程的优先级的作用是,告诉线程调度机制这个线程的重要程度的高低。

            线程的最大优先级是10,最小优先级是1,线程的默认优先级是5,可以通过setPriority方法来改变线程的优先级。

 

以上为个人学习多线程的一些要点和概念理解。如有差错,跪求指出,大谢~~~大笑

 

 

分享到:
评论

相关推荐

    个人总结的深入java多线程开发

    看完《think in java》多线程章节,自己写的多线程文档,还结合了其他的相关网络资料。 线程 一. 线程池 1)为什么要使用线程池 2 2)一个具有线程池的工作队列 3 3)使用线程池的风险: 4 4)有效使用线程池的原则 5...

    Java从入门到精通.pdf

    十四万字总结,PDF包含了十四个大模块:Java基础知识,数据结构,算法,Java集合框架,Java8新特性,操作系统,网络原理,Java多线程及并发编程,Java的IO模型及网络编程,JVM,Mysql,JavaWeb和一个仿Tomcat实现的...

    C++转JAVA入门总结

    1. 内置数据类型 2. string类 3. 数组 4. 循环分支 5. 工具类(数据容器、日期、正则表达式……) 6. JAVA流、文件、IO 7. JAVA异常 8. JAVA继承 1. 抽象类与抽象方法 ...5.JAVA网络与多线程 6. JAVA类生命周期

    java基础入门教程

    所 以 有 人 说 :"现 在 第 三 方 的 开 发 商 都 团 结 在 Java大旗 周 围了 !",纷 纷 推 出 用Java 开 发 的 各 种 软 件 产 品 ,以 期尽 快 地 占 领 市 场 。 四 、 Java 语 言 的 应 用 前 景 Java 语 言 ...

    java 编程入门思考

    1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段...

    Java初学者入门教学

    1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    7.11 小结:多方位理解Java方法 191 7.12 习题 192 第8章 Java中的包(Package)命名习惯和注释 193 教学视频:43分钟 8.1 Java中的包(Package) 193 8.1.1 Java中的包 193 8.1.2 在Eclipse中使用包 194 ...

    java中终止一个线程的方法总结(精)

    如果你也这么认为,那你对多线程编程还没有入门。  在java中,线程的中断(interrupt)只是改变了线程的中断状态,至于这个中断状态改变后带来的结果,那是无法确定的,有时它更是让停止中的线程继续执行的唯一手段...

    实验5 JAVA常用类.doc

    本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)...进阶篇有反射、泛型、注解、网络编程、多线程、序列化、数据库、Servlet、JSP、XML解析、单例模式与枚举。本专栏主要为Java入门者提供实验参考。

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    7.11 小结:多方位理解Java方法 191 7.12 习题 192 第8章 Java中的包(Package)命名习惯和注释 193 教学视频:43分钟 8.1 Java中的包(Package) 193 8.1.1 Java中的包 193 8.1.2 在Eclipse中使用包 194 ...

    实验9 Java输入输出流.doc

    本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)...进阶篇有反射、泛型、注解、网络编程、多线程、序列化、数据库、Servlet、JSP、XML解析、单例模式与枚举。本专栏主要为Java入门者提供实验参考。

    JavaSE重点知识总结精华(全)

    基本操作 Java基础 面向对象 多线程 String类 集合 IO socket网络编程 反射 泛型 你想要的通通都在这里

    清华大学JAVA教程

    ◇6.2 多线程的互斥与同步 ◇6.3 Java Applet ◇本讲小结 ◇课后习题 ★ 第七讲 Swing用户界面设计 ◇课前索引 ◇7.1 Swing简介 ◇7.2 Swing组件和容器 ◇本讲小结 ◇课后习题 ★ 第八讲 Java网络编程 ◇...

    自己总结的多线程的相关知识的思维导图

    javase 刚入门人群

    java基础总结

    java课程27天的总结 《Java基础入门》从初学者的角度详细讲解了Java开发中重点用到的多种技术。全书共11章,包括Java开发环境的搭建及其运行机制、基本语法、面向对象的思想,采用典型翔实的例子、通俗易懂的语言...

    Java语言程序设计

    图书详细描述: 本书将Java语言作为大学生的计算机程序设计入门语言,其特色是内容全面、深入浅出、辅助教材立体...多线程第9章 图形用户界面第10章 JDBC与数据库访问第11章 Servlet程序设计第12章 JSP程序设计参考文献

    Java高级特性.bmp

    Java高级特性思维导图,不包括多线程,很详细,很高清,java入门必备秘籍~

    2021最新java面试合集pdf.rar

    JAVA核心知识点整理.pdf Java面试笔记.docx JAVA面试题解惑系列.pdf Java面试题(基础).pdf JVM 实用参数系列 - v1.0.pdf JVM与性能优化知识点整理.pdf JVM面试专题.docx JVM面试专题及答案.pdf Linux系统Redis笔记...

    java联想(中文)

    1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段...

    编程实践:Java进阶100例

    编者结合自己多年来在Java研发和技术指导岗位上的经验,总结和汲取Java最核心的技术和能力,为广大Java爱好者提供更好的系统学习Java知识的方法和方向。 目录: 第一章:Java入门; 第二章:MyEclipse的基本...

Global site tag (gtag.js) - Google Analytics