多线程技术

多线程技术

学习多线程,我们要先知道实现多线程的两种方式,现在我们就来细细说一说,大家跟着我的脚步往下看吧!!!
实现多线程技术的两种方式

一、继承Thread

继承Thread是java给提供的新建现成的类,想要新开启一个线程必须要继承Thread。并且重写run()方法;
run方法里的代码,是一条新的执行路径,这个执行路径的触发方式不是调用run方法,而是通过Thread对象在主方法中调用.start()方法来启动任务。(抢占式分配,随机顺序,每次执行的结果都不一定是一样的)

Tread常用的一些方法:
.getName:返回线程的名称
.getId:返回线程的id
.getPriority:返回此线程的优先级
.setPriority(int newPriority):设置此线程的优先级(最大优先级:MAX_PRIORITY,最小优先级:MIN_PRIORITY,默认优先级:NORM_PRIORITY)
Thread.sleep()方法调用的目的是不让当前线程独自霸占该进程所获取的CPU资源,以留出一定时间给其他线程执行的机会。

二、实现Runnable(个人比较推荐使用这种方法)

首先创建一个类实现Runnable接口,我们需要重写run方法(所有的多线程代码都在run方法里面),在主方法里,首先创建一个对象,然后在创建一个线程,并为其分配一个任务,用start()方法运行这个多线程的代码

方法:
run():当使用实现接口Runnable的对象来创建线程时,启动线程会导致在改单独执行的线程中电泳该对象的run方法

三、实现Runnable与继承Thread相比有哪些优势

1、通过创建任务,然后给线程分配的方式来实现的多线程,更适合多个线程同时执行相同任务的情况
2、可以避免单继承所带来的局限性
3、任务与线程本身是分离的,提高了程序的健壮性
4、后续学习的线程池的技术,接受Runnable类型的任务,不接收Thread类型的线程,所以我们一般使用实现Runnable方法

我们今天的分享就到这里结束了,有兴趣研究多线程的推荐直接看java的源码,你将会得到很大的提升!

你可能感兴趣的:(多线程,java,多线程)