2026/4/18 10:19:15
网站建设
项目流程
网站开发注意,怎样建免费网站,大学英语作文网站,电子商务官网首页并发和并行
并行#xff1a;在同一时刻#xff0c;有多个任务在多个CPU上同时运行
并发#xff1a;在同一时刻#xff0c;有多个任务在单个CPU上交替运行
进程和线程
进程#xff1a;在多任务操作系统中#xff0c;每个独立执行的程序#xff0c;也就是操作系统中正在运…并发和并行并行在同一时刻有多个任务在多个CPU上同时运行并发在同一时刻有多个任务在单个CPU上交替运行进程和线程进程在多任务操作系统中每个独立执行的程序也就是操作系统中正在运行的应用程序线程程序运行的基本执行单元就是应用程序中做的事情什么是多线程是指从软件或者硬件上实现多个线程并发执行的技术具有多线程能力的计算机因有硬件支持而能够在同一时刻执行多个线程提升性能怎么实现多线程1.继承Thread类用到方法public void run() :线程执行任务的方法是线程启动后第一个执行的方法public void start() :启动线程的方法线程对象调用该方法后Java虚拟机就会自动调用此线程的run方法步骤创建一个子类继承Thread类 创建的子类也是线程类在子类中编写让线程帮助完成的任务任务代码重写Thread类中的run方法线程任务启动线程弊端类只能单一继承publicclass子类extendsFather{}//像这样的类就不能再写Thread类了//多线程开发//继承Thread类当前类为线程类publicclassMyThreadextendsThread{Overridepublicvoidrun(){System.out.println(新的线程开始执行);for(inti100;i200;i){System.out.println(新线程i);}}}publicclassThreadDemo{publicstaticvoidmain(String[]args){System.out.println(进入到main方法中执行代码...);//创建一个线程对象MyThreadmyThreadnewMyThread();myThread.start();//启动线程代码底层自动调用run方法//main方法中的代码for(inti0;i1000;i){System.out.println(i);}}}2.实现Runnable接口使用构造方法public Thread(Runnable target)public Thread(Runnalbe target , String name)步骤创建一个子类 实现Runnable接口在子类中重写Runnable接口中的方法run 线程任务方法创建Thread类对象 并把实现了Runnable接口的子类对象作为参数传递给Thread类对象 new Thread( Runnable类型的对象 )启动线程//创建一个子类:线程任务类 实现Runnable接口publicclassMyTaskimplementsRunnable{//线程任务功能Overridepublicvoidrun(){System.out.println(新的线程开始了);for(inti100;i200;i){System.out.println(新线程i);}}}publicclassThreadDemo2{publicstaticvoidmain(String[]args){System.out.println(进入main方法中开始执行);//创建线程任务对象MyTaskmtnewMyTask();//创建线程类对象并指定要执行的任务ThreadtnewThread(mt);//启动线程t.start();//底层代码会自动调用run方法for(inti0;i1000;i){System.out.println(i);}}}//线程任务 Runnable接口实现类//线程功能 Thread类推荐使用Runnable接口的方式好处解耦接口的作用制定规则可以降低耦合 耦合程序之间紧密连接的程度 //程序都是要求低耦合线程类常用功能StringgetName():返回此线程的名称voidsetName(Stringname):将此线程的名称更改为等于参数的name//通过构造方法也可以设置线程名称publicstaticThreadcurrentThread():返回当前正在执行的线程对象的引用publicstaticvoidsleep(longtime):让线程休眠指定的时间单位为毫秒publicvoidjoin():具备阻塞作用等待这个线程死亡才会执行其他线程publicclassThreadTaskimplementsRunnable{Overridepublicvoidrun(){System.out.println(新线程开始执行);//获取当前线程对象ThreadthreadThread.currentThread();//获取当前线程名称Stringnamethread.getName();for(inti100;i200;i){System.out.println(name:i);}}}publicclassTest{publicstaticvoidmain(String[]args){System.out.println(hello);//链式写法newThread(newThreadTask()).start();//Thread-0:193//修改线程名字// new Thread(new ThreadTask(), hello).start();//hello:191//让当前线程休息500毫秒try{Thread.sleep(500);//会报异常我们用捕获处理}catch(InterruptedExceptione){thrownewRuntimeException(e);}for(inti0;i1000;i){System.out.println(i);}}}publicclassThreadTaskimplementsRunnable{Overridepublicvoidrun(){//让当前线程进入到阻塞状态暂停了要直到其他线程执行完才会执行但是很遗憾main方法中并没有给它提示所有下面的代码不会被执行try{Thread.currentThread().join();}catch(InterruptedExceptione){thrownewRuntimeException(e);}System.out.println(新线程开始执行);//获取当前线程对象ThreadthreadThread.currentThread();//获取当前线程名称Stringnamethread.getName();for(inti100;i200;i){System.out.println(name:i);}}}publicclassTest{publicstaticvoidmain(String[]args){System.out.println(hello);//链式写法newThread(newThreadTask()).start();//Thread-0:193//修改线程名字// new Thread(new ThreadTask(), hello).start();//hello:191for(inti0;i1000;i){System.out.println(i);}}}