zoukankan      html  css  js  c++  java
  • 一、javaSE (二十三)多线程

    1:多线程(理

             (1)多线程:一个应用程序有多条执行路径

                       进程: 正在执行的应用程序

                       线程: 进程的执行单元,执行路径

                       单线程: 一个应用程序只有一条执行路径

                       多线程: 一个应用程序有多条执行路径

                       多进程的意义?

                                提高CpU的使用率

                       多线程的意义?

                                提高应用程序的使用案

             (2)Java程序的运行原理及JVM的启动是多线程的吗?

                       A:Java命令去启动JVM,JVM会启动一个进程,该进程会启动一个主线程。

                       B:JVM的启动是多线程的,因为它最低有两个线程启动了,主线程和垃圾回收线程

             (3)多线程的实现方案(自己社齐步骤及代码掌握)

                       A:继承Thread类

                       B:实现Runnable接口

             4)线程的调度和优先级问题

                       A:线程的调度

                                a:分时调度

                                b:抢占式调度(Java采用的是该调度方式)

                       B:获取和设置线程优先级

                                a:默认是5

                                b:范围是1-10

             5)线程的控制(常见方法)

                       A:体眠线程

                       B:加入线程

                       C:礼让线程

                       D:后台线程

                       E:终止线程(掌握)

             (6)线程的生命周期(参照线程生命周期图解.bmgp)

                       A:新建

                       B:就绪

                       C:运行

                       D:阻塞

                       E:死亡

             (7)电影院卖票程序的实现

                       A:继承Thread类

                       B:实现Runnab1e接口

             8)电影院卖票程序出问题

                       A:为了更符合真实的场景,加入了休眠100毫秒

                       B:卖票问题

                                a:同票多次

                                b:负数票

             9)多线程安全问题的原因(也是我们以后判断一个程序是否有线程安全问题的依据)

                       A:是否有多线程环境

                       B:是否有共享数据

                       C:是否有多条语句操作共享数据

             (10)回步解决线程安全问题

                       A:同步代码块

                                synchronized(对象){

                                         需要被同步的代码

                                }

                                这里的锁对象可以是任意对象。

                       B:同步方法

                                把同步加在方法上

                                这里的锁对象是this

                       C:静态同步方法

                                把同步加在方法上

                                这里的锁对象是当前类的字节码文件对象(反射再讲字节码文件对象)

             (11)回顾以前的线程安全的类

                       A: StringBuffer

                       B: Vector

                       C: Hashtable

                       D:如何把一个线程不安全的集合类变成一个线程安全的集合类

                       用Co11ect1ons工具类的方法即可

  • 相关阅读:
    NYOJ 625 笨蛋的难题(二)
    NYOJ 102 次方求模
    ZJU Least Common Multiple
    ZJUOJ 1073 Round and Round We Go
    NYOJ 709 异形卵
    HDU 1279 验证角谷猜想
    BNUOJ 1015 信息战(一)——加密程序
    HDU 1202 The calculation of GPA
    "蓝桥杯“基础练习:字母图形
    "蓝桥杯“基础练习:数列特征
  • 原文地址:https://www.cnblogs.com/zhangchengbing/p/8286820.html
Copyright © 2011-2022 走看看