黑马程序员——Java基础-多线程

来源:互联网 发布:tensorflow百度云 编辑:程序博客网 时间:2024/06/04 00:59

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

线程是进程中的内容

进程:正在执行中的程序,每一个进程执行都有一个执行的顺序,该顺序就是一个执行路径
          或者叫控制单元。
线程:是进程中的一个独立的控制单元,线程控制着进程的执行
一个进程中至少有一个线程 
java vm启动的时候会有一个进程java.exe
该进程中至少有一个线程在控制程序的运行而且这个线程运行的代码存在于main方法中
该线程称之为主线程
jvm有主线程和垃圾回收线程

如何在自定义的代码中,自定义一个线程
通过对api的查找,java已经提供了对线程这类事物的描述,就是thread类以及Runnable接口

创建线程的第一种方式:继承thread类
步骤
1.定义类继承thread
2.复写thread类中的run方法
     目的:将自定义代码存储在run方法中,让线程调用运行
3.调用线程的start方法
     该方法两个作用,启动线程调用run方法

创建线程的第二种方式:实现Runnable接口
步骤:
1.定义类实现Runnable接口
2.覆盖Runnable接口中的run方法
     将线程要运行的代码存放在该run方法中
3.通过Thread类建立线程对象
4.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
     因为自定义的run方法所属的对象是Runnable接口的子类对象,所以要让线程去调用该run方法就必须把该run方法的对象传递给Thread。通过构造函数使得Runnable子类与Thread对象产生关系。
5.调用Thread类的start方法开启线程并调用Runnable接口子类的run方法

实现方式和继承方式有什么区别?
实现方式避免单继承带来的局限性,一般使用实现方式编程
继承Thread:线程代码存放在Thread子类run方法中
实现Runnable:线程代码存放在接口的子类的run方法中
<span style="font-size:14px;">class Ticket implements Runnable{     private int tick=100;     Object obj=new Object();     public void run()     {          while(true)          {               synchronized(obj)//同步代码块               {                    if(tick>0)                    {                         try{Thread.sleep(10);}catch(Exception e){}//人为模拟线程切换                         System.out.println(Thread.currentThread().getName()+"...sale..."+tick--);                    }               }                        }     }}class TicketDemo{     public static void main(String[] args)     {          Ticket t=new Ticket();//同一票源,分四个窗口售卖          Thread t1=new Thread(t);          Thread t2=new Thread(t);          Thread t3=new Thread(t);          Thread t4=new Thread(t);          t1.start();          t2.start();          t3.start();          t4.start();     }}</span>
发现运行结果每一次都不同
因为多个线程都获取CPU的执行权,CPU执行到谁,谁就运行
明确一点,在某一个时刻只能有一个程序在运行(多核除外)
CPU在做着快速的切换,以达到看上去是同时运行的效果
我们可以形象把多线程的运行行为在互相抢夺CPU的执行权
这就是多线程的一个特性:随机性。谁抢到谁执行,至于执行多长,CPU说的算


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 米粉卡激活失败怎么办 电脑死机ppt保存怎么办 电脑装系统黑屏怎么办 电脑c盘无法访问怎么办 d盘变成ntfs怎么办 系统重装卡住了怎么办 系统关机没反应怎么办 232串口打开失败怎么办 逆水寒cpu不支持怎么办 显卡被禁用了怎么办 vmvare注册错了怎么办 电脑主机未成功启动怎么办 主机未成功启动怎么办 电脑主机未能成功启动怎么办 虚拟机没有自带怎么办 错误连接为720怎么办 dns错误不能上网怎么办 家里无线用不了怎么办 磁盘c5坏了怎么办 一体机装xp蓝屏怎么办 虚拟机密码忘记了怎么办 vivoy66手机太卡怎么办 虚拟机装xp蓝屏怎么办 exagear玩起来卡怎么办 第五人格模拟器玩太卡怎么办 速腾油箱盖打不开怎么办 奥迪a6油箱盖打不开怎么办 苹果手提虚拟机黑屏怎么办 mac系统桌面变大怎么办 删除文件要权限怎么办 页面载入错误了怎么办 手机打不开excel表格怎么办 皇室战争闪退怎么办 苹果老是闪退怎么办 黑苹果开机黑屏怎么办 MAC磁盘删了怎么办 mac磁盘被锁定怎么办 bt5读不到网卡怎么办 笔记本电脑cpu温度过高怎么办 笔记本cpu温度过高怎么办 联想系统崩溃了怎么办