多线程

多线程

并发和并行
  并发: 两个事件在同一"时刻"同时进行 
  并行: 两个事件在同一"时间段"同时进行
      
进程和线程
进程: 在内存中正在执行的程序(任务管理器里的每一行程序都算一个进程)
线程: 在进程中拥有独立功能的执行单元.一般完成某项操作(360杀毒软件扫描和杀毒就是杀毒软件进程中的两个线程)
 		线程调度: CUP的线程调度: CPU 会在多个线程之间,.进行快速切换,快到人根本感觉不出来,以为多个线程同时都在执行,实际上这多个线程是在并发执行.
        分类: 
			a. 分时调度: 每个线程平均分配CPU运行时间
            b. 抢占式调度: 每个线程随机分配CPU的运行时间
      java 程序采用抢占式调度,所以多个线程每次运行的结果可能是不一样的
                	

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S1j3wnpn-1592724559723)(E:\网课\就业班课程\day11多线程-1\day11【多线程】\day11【多线程】\img\image-20200420094313653.png)]

Thread类的介绍
a.Thread类是什么?
    Thread类就代表Java中的线程类
b.Thread类的构造方法
    public Thread(); 无参构造,线程具有默认名字,默认是Thread-0,THread-1,....
    public Thread(String name);带有线程名字的构造方法
    
    public Thread(Runnable r);带有线程任务的构造方法
    public Thread(Runnable r,String name);带有线程任务和线程名字的构造方法   
c.Thread类的常用方法
    public void start();启动"当前"线程
    public void run(); 线程写任务代码的地方
    
    public String getName(); 获取当前线程的名字
	public void setName(String name); 修改当前线程的名字
    
    public static void sleep(long miliis);"当前"线程"暂停"miliis毫秒
    		注意:这里的"当前"线程是指,Thread.sleep(毫秒值);这句代码所在的线程
    public static Thread currentThread(); 获取"当前"线程对象
            注意: 这里的"当前"线程是指,Thread.currentThread();这句代码所在的线程对象
创建线程的方式
a.继承方式 	  创建 线程类 继承Thread 
            重写 run() 方法
            该类对象调用start()方法
b.实现Runnable方式   创建线程类. 
                    创建Runnable实现类 ,实现类中重写run()方法
                    将实现类对象传入线程类中
c. 实现Callable方式
    		步骤1:创建实现Callable接口的类SomeCallable<Integer>(略);
			步骤2:创建一个类对象:
			Callable<Integer> oneCallable = new SomeCallable<Integer>();
			步骤3:由Callable<Integer>创建一个FutureTask<Integer>对象:
			FutureTask<Integer> oneTask = new FutureTask<Integer>(oneCallable);
		//FutureTask<Integer>是一个包装器,它通过接受Callable<Integer>来创建,它同时实现了Future和Runnable接口。
			步骤4:由FutureTask<Integer>创建一个Thread对象:
				Thread oneThread = new Thread(oneTask);
实现方式 比 继承方式好!!
a.实现方式 弥补了 单继承的不足
b.实现方式更加灵活,继承方式高耦合
c.继承方式不合符低耦合编程思想,而实现方式线程对象和任务对象是由程序员来组合,体现低耦合的思想
综上所述,Java强烈建议使用实现方式!!!
d.Callable 方式会有返回值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值