1.进程是多个线程的集合,进程是执行中的程序
2.在进程中一定有个线程叫主线程,控制代码执行顺序
3.线程 :线程是 *** 作系统能够进行运算调度的最小单位,包含在进程之中,是进程中的实际运作单位,线程是进程的执行路径
4.多线程为了提高程序的效率,每个线程互不影响,每个线程独立运行
5.多线程并不是提高宽带速度而只是提高程序效率
6.单核CPU执行多线程不会出现阻塞,CPU切换时间非常短
7.多线程应用场景:多线程下载、ajax异步上传、爬虫、
创建线程的方式1)继承Thread类方式,
继承Thread类重写run方法,
如何调用?先new一下线程类,将它实例化。
启动线程类不是调用run方法,而是调用start方法
Class CreateThreadDemo01 extends Thread{ //run方法就是县城需要执行的任务、需要执行的代码 @Override Public void run(){ for(int i=0;i<30;i++){ System.out.println("runi:"+i); } } } Public class ThreadDemo01{ Public static void main(String[] args){ //1.调用线程类 CreateThreadDemo01 demo01=new CreateThreadDemo01(); //启动线程类不是调用run方法,而是调用start方法 demo01.start(); for(int i=0;i<30;i++){ System.out.println("miani:"+i); } } }
2)使用runable接口方式
先声明Runbale接口
如何调用?先new一下线程类,将它实例化。然后new一个thread接口,把线程类放入该接口
然后thread.start();
Class CreateThreadDemo02 implements Runnable{ //run方法就是县城需要执行的任务、需要执行的代码 @Override Public void run(){ for(int i=0;i<30;i++){ System.out.println("子线程runi:"+i); } } } Public class ThreadDemo02{ Public static void main(String[] args){ //1.调用线程类 CreateThreadDemo02 demo02=new CreateThreadDemo02(); Thread thread=new Thread(demo02); thread.start(); for(int i=0;i<30;i++){ System.out.println("miani:"+i); } } }
问?使用继承方式创建线程好,还是使用runable接口好?
开发都是面向接口编程。使用继承只能继承一次,使用接口可以声明多个接口
拓展:
①extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承。
②java中不支持多重继承,继承只能继承一个类。但implements可以实现多个接口,用逗号分开就行了。
3)使用匿名内部类方式(使用不多)
什么是匿名内部类?内部类:将一个类直接定义在另一个类或者方法里面
Public class ThreadDemo03{ Public static void main(String[]args){ Thread thread=new Thread(new Runnable(){ @Override public void run(){ for(inti=0;i<30;i++){ System.out.println("run i:"+i); } } }); thread.start(); for(int i=0;i<30;i++){ System.out.println("main i:"+i); } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)