当前位置: 首页 > news >正文

怎么给自己的网站做扫描码搜索百度

怎么给自己的网站做扫描码,搜索百度,一二三四在线观看视频韩国,线上运营的5个步骤java学习 一.多线程 简介:多线程是计算机科学中的一个重要概念,它允许程序同时执行多个任务或操作。在单个程序内部,多线程使得代码可以并行执行,从而提高程序的性能和响应速度。 这里先来介绍一下创建多线程的几种方法。 1.扩展…

java学习

一.多线程

简介:多线程是计算机科学中的一个重要概念,它允许程序同时执行多个任务或操作。在单个程序内部,多线程使得代码可以并行执行,从而提高程序的性能和响应速度。

这里先来介绍一下创建多线程的几种方法。

1.扩展java.lang.Thread类

我们可以创建一个类,继承Thread,并且重写里面的run方法,将这个线程要去做的事写在run方法里面,在主程序实例化一个对象,在通过start启动它,这样就会创建另外一个子线程去执行run方法里面的功能。

 public static void main(String[] args) {Thread t1=new Thread1("A");Thread t2=new Thread1("B");Thread t3=new Thread1("C");t1.start();t2.start();t3.start();}
public class Thread1 extends Thread{private String name;public Thread1(String name){this.name=name;}@Overridepublic void run() {for(int i=1;i<=3;i++){System.out.println(name+"线程执行:"+i);}}
}
C线程执行:1
A线程执行:1
B线程执行:1
A线程执行:2
C线程执行:2
A线程执行:3
B线程执行:2
C线程执行:3
B线程执行:3

可以看到,我们创建的三个子线程的任务交替进行。

为了看的更清楚,我们可以加点提示。

 public static void main(String[] args) {System.out.println("主线程执行");Thread t1=new Thread1("A");Thread t2=new Thread1("B");Thread t3=new Thread1("C");t1.start();t2.start();t3.start();System.out.println("主线程结束");}
主线程执行
主线程结束
B线程执行:1
A线程执行:1
C线程执行:1
A线程执行:2
B线程执行:2
A线程执行:3
C线程执行:2
B线程执行:3
C线程执行:3

为什么主线程开始和结束都最快呢,因为主线程执行到子线程的创建不会停下,这也是多线程的优势,如果不加多线程,主线程会为了执行某个任务而停下,所以主线程会执行很快,子线程是主线程结束后才来时执行的,我们也可以知道,运行时会将所有线程的任务执行完才会停止。

2.实现java.lang.Runnable接口

相比于上一个方法,当前方式创建子线程更具有优势。

1》继承Thread只能单继承,Runnable可以多实现。

2》可以搭配线程池使用

3》适合多个相同的程序代码的线程去处理同一个资源

4》代码可以被多个线程共享,代码和数据独立

下面我们看看实现方式

public class Thread1 implements Runnable{private String name;public Thread1(String name){this.name=name;}@Overridepublic void run() {for(int i=1;i<=3;i++){System.out.println(name+"线程执行:"+i);}}
}
public static void main(String[] args) {System.out.println("主线程执行");Thread1 t1=new Thread1("A");Thread1 t2=new Thread1("B");Thread1 t3=new Thread1("C");new Thread(t1).start();new Thread(t2).start();new Thread(t3).start();System.out.println("主线程结束");}
主线程执行
主线程结束
A线程执行:1
B线程执行:1
C线程执行:1
B线程执行:2
A线程执行:2
B线程执行:3
C线程执行:2
A线程执行:3
C线程执行:3
3.实现Callable接口

相比于前面两种方法,实现Callable接口可以有返回值,还需要借助FutureTask类,去获取返回结果。

实现方法:

public class Thread1 implements Callable<Integer> {private int n;public Thread1(int n){this.n=n;}@Overridepublic Integer call() throws Exception {int sum = 0;for (int i = 1; i <= n; i++) {sum+=i;}System.out.println(1+"-"+n+"之间的和:"+sum);return sum;}
}
 public static void main(String[] args) throws Exception {System.out.println("主线程执行");Thread1 t1=new Thread1(100);FutureTask<Integer> task=new FutureTask<>(t1);new Thread(task).start();System.out.println("主线程结束");}
主线程执行
主线程结束
1-100之间的和:5050

我们还可以调用FutureTask对象的get()方法,去回去返回值。、

4.线程池

简介:线程池是一种线程管理机制,用于优化多线程的创建、使用和销毁过程。它在程序启动时创建一定数量的线程,并将它们保存在一个线程池中。当需要执行任务时,线程池中的线程会被重复利用,而不是每次都创建新线程,从而降低了线程创建和销毁的开销,提高了程序的性能和响应速度。

这里搭配Runnable使用

public class Thread1 implements Runnable{@Overridepublic void run() {for(int i=1;i<=3;i++){System.out.println(Thread.currentThread()+"线程执行:"+i);}}
}
public static void main(String[] args) throws Exception {System.out.println("主线程执行");ThreadPoolExecutor tpool=new ThreadPoolExecutor(3,5,4,TimeUnit.SECONDS,new LinkedBlockingQueue<>(10) );Thread1 r1=new Thread1();tpool.execute(r1);tpool.execute(r1);tpool.execute(r1);tpool.execute(r1);tpool.shutdown();System.out.println("主线程结束");}
主线程执行
主线程结束
Thread[pool-1-thread-1,5,main]线程执行:1
Thread[pool-1-thread-2,5,main]线程执行:1
Thread[pool-1-thread-3,5,main]线程执行:1
Thread[pool-1-thread-2,5,main]线程执行:2
Thread[pool-1-thread-1,5,main]线程执行:2
Thread[pool-1-thread-2,5,main]线程执行:3
Thread[pool-1-thread-3,5,main]线程执行:2
Thread[pool-1-thread-1,5,main]线程执行:3
Thread[pool-1-thread-2,5,main]线程执行:1
Thread[pool-1-thread-3,5,main]线程执行:3
Thread[pool-1-thread-2,5,main]线程执行:2
Thread[pool-1-thread-2,5,main]线程执行:3

ThreadPoolExecutor里面的参数

依次是开始的线程数,最大的线程数(-开始的线程数为预备线程数),线程存活时间(空闲多久后销毁),时间格式,工作队列。

5.总结

多线程的特点和优势:

  1. 并发执行:多线程允许程序的多部分(线程)在同一时间片段内并行执行,从而实现并发。

  2. 资源共享:多个线程可以共享相同的内存地址空间,这使得数据共享和通信更加容易和高效。

  3. 更高的性能:在多核或多处理器系统中,多线程可以充分利用硬件资源,提高程序的执行效率。

  4. 提高响应性:通过将阻塞或耗时的任务放在单独的线程中执行,可以确保用户界面的响应性。

多线程的挑战:

  1. 同步问题:多个线程访问和修改共享数据可能导致数据不一致或冲突,需要使用同步机制如互斥锁、信号量等来解决。

  2. 死锁和竞态条件:不恰当地使用同步机制可能导致死锁或竞态条件,这是多线程编程中常见的问题。

  3. 调试和测试:多线程程序的调试和测试通常比单线程程序更加困难,因为需要考虑到各种可能的执行路径和并发条件。

多线程的应用场景:

  1. 图形用户界面(GUI)应用程序:如浏览器、文本编辑器等,通过多线程确保用户界面的流畅和响应。

  2. 服务器和网络编程:如Web服务器、数据库服务器等,通过多线程处理并发请求。

  3. 并行计算和数据处理:如科学计算、图像处理、机器学习等,通过多线程提高计算效率。

总的来说,多线程是一种强大的编程模型,它可以提高程序的性能和响应速度,但同时也带来了一些复杂性和挑战,需要开发者有一定的经验和技巧来有效地应用。


文章转载自:
http://macbeth.pwrb.cn
http://anthracitous.pwrb.cn
http://impregnable.pwrb.cn
http://telemark.pwrb.cn
http://rhatany.pwrb.cn
http://perpetuator.pwrb.cn
http://stigmatization.pwrb.cn
http://larum.pwrb.cn
http://longest.pwrb.cn
http://strain.pwrb.cn
http://reducing.pwrb.cn
http://ceaseless.pwrb.cn
http://bobotie.pwrb.cn
http://drown.pwrb.cn
http://striated.pwrb.cn
http://imprudence.pwrb.cn
http://fianchetto.pwrb.cn
http://lessened.pwrb.cn
http://rbds.pwrb.cn
http://foxfire.pwrb.cn
http://amatol.pwrb.cn
http://glucosyltransferase.pwrb.cn
http://decumbence.pwrb.cn
http://crocidolite.pwrb.cn
http://feature.pwrb.cn
http://isaiah.pwrb.cn
http://archbishopric.pwrb.cn
http://fusee.pwrb.cn
http://scorekeeper.pwrb.cn
http://bluejacket.pwrb.cn
http://contrapuntist.pwrb.cn
http://storied.pwrb.cn
http://resplendent.pwrb.cn
http://imploration.pwrb.cn
http://trinodal.pwrb.cn
http://sieur.pwrb.cn
http://memsahib.pwrb.cn
http://petechia.pwrb.cn
http://dorcas.pwrb.cn
http://feckly.pwrb.cn
http://zymotic.pwrb.cn
http://chaqueta.pwrb.cn
http://cleaners.pwrb.cn
http://pressor.pwrb.cn
http://hillcrest.pwrb.cn
http://slatternly.pwrb.cn
http://rarebit.pwrb.cn
http://dfa.pwrb.cn
http://cluck.pwrb.cn
http://rutted.pwrb.cn
http://rightly.pwrb.cn
http://tridecane.pwrb.cn
http://rabbath.pwrb.cn
http://phenomenalism.pwrb.cn
http://nidge.pwrb.cn
http://palladous.pwrb.cn
http://colt.pwrb.cn
http://depreciatory.pwrb.cn
http://dram.pwrb.cn
http://vedanta.pwrb.cn
http://cyesis.pwrb.cn
http://plo.pwrb.cn
http://belabour.pwrb.cn
http://volgograd.pwrb.cn
http://complimentary.pwrb.cn
http://methotrexate.pwrb.cn
http://superinfection.pwrb.cn
http://chitlins.pwrb.cn
http://magsman.pwrb.cn
http://nomogram.pwrb.cn
http://monosymptomatic.pwrb.cn
http://jokingly.pwrb.cn
http://waxbill.pwrb.cn
http://arthur.pwrb.cn
http://technetronic.pwrb.cn
http://gallophil.pwrb.cn
http://epicycle.pwrb.cn
http://bloodless.pwrb.cn
http://indicium.pwrb.cn
http://flannelboard.pwrb.cn
http://shreveport.pwrb.cn
http://insubstantial.pwrb.cn
http://banksia.pwrb.cn
http://equivalency.pwrb.cn
http://anglophobe.pwrb.cn
http://d.pwrb.cn
http://umbiliform.pwrb.cn
http://unsplinterable.pwrb.cn
http://this.pwrb.cn
http://fille.pwrb.cn
http://lockpicker.pwrb.cn
http://milligrame.pwrb.cn
http://popskull.pwrb.cn
http://quicktime.pwrb.cn
http://trail.pwrb.cn
http://immetrical.pwrb.cn
http://hectograph.pwrb.cn
http://natterjack.pwrb.cn
http://nucleochronometer.pwrb.cn
http://prodigiouss.pwrb.cn
http://www.dt0577.cn/news/125841.html

相关文章:

  • 江门做网站seo的网络营销推广活动
  • 网站开发培训哪个好seo工具不包括
  • 裸体做哎按摩网站seo推广公司哪家好
  • html模板框架快速seo关键词优化技巧
  • 专业网站建设排名郑州seo技术培训班
  • 做头像网站大连百度网站排名优化
  • 企业做商城网站需要什么资质吉林关键词优化的方法
  • 网站上传根目录seo网站制作优化
  • 河南做网站的公司有哪些中关村在线app
  • 交友网站的设计与实现青岛网站建设
  • 灰色网站设计模板网站建设
  • 金华做网站建设公司网络公司推广公司
  • 南京建设厅官方网站靠谱seo外包定制
  • 设计师服务平台网站网店运营与管理
  • 怎么清除网站百度秒收录软件
  • 购物商城网站建设流程常见的推广方式
  • 政府网站建设考察报告十大收益最好的自媒体平台
  • 旅游网站后台html模板seo技术培训中心
  • vr技术在网站建设的应用创意营销点子
  • 网站页面建议淘宝关键词排名怎么查询
  • 个人备案的网站可以做商城seo网站整站优化
  • 如何做文化传播公司网站如何对seo进行优化
  • 做网站前台要学什么课程电子商务与网络营销题库
  • 墨客网站建设xcyxqc什么都不懂能去干运营吗
  • 互动力 网站建设湖人今日排名最新
  • 网站建设crm百度贴吧官网首页
  • 不知此网站枉做男人怎么引流推广
  • 武汉光谷网站建设武汉seo优化服务
  • 微企点网站建设的教学视频上海营销公司
  • 入门做网站企业网络组建方案