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

易用的做网站软件/搜索引擎有哪些

易用的做网站软件,搜索引擎有哪些,冀州网站建设公司,做网站的外包公司上班好不好1.多线程的概念?说起多线程,那么就不得不说什么是线程,而说起线程,又不得不说什么是进程。进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位&…

1.多线程的概念?

  说起多线程,那么就不得不说什么是线程,而说起线程,又不得不说什么是进程。

  进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

  以上是百度百科对进程的解释。

  进程可以简单的理解为一个可以独立运行的程序单位。它是线程的集合,进程就是有一个或多个线程构成的,每一个线程都是进程中的一条执行路径。

  那么多线程就很容易理解:多线程就是指一个进程中同时有多个执行路径(线程)正在执行。

  为什么要是用多线程?

  1.在一个程序中,有很多的操作是非常耗时的,如数据库读写操作,IO操作等,如果使用单线程,那么程序就必须等待这些操作执行完成之后才能执行其他操作。使用多线程,可以在将耗时任务放在后台继续执行的同时,同时执行其他操作。

  2.可以提高程序的效率。

  3.在一些等待的任务上,如用户输入,文件读取等,多线程就非常有用了。

  缺点:

  1.使用太多线程,是很耗系统资源,因为线程需要开辟内存。更多线程需要更多内存。

  2.影响系统性能,因为操作系统需要在线程之间来回切换。

  3.需要考虑线程操作对程序的影响,如线程挂起,中止等操作对程序的影响。

  4.线程使用不当会发生很多问题。

  总结:多线程是异步的,但这不代表多线程真的是几个线程是在同时进行,实际上是系统不断地在各个线程之间来回的切换(因为系统切换的速度非常的快,所以给我们在同时运行的错觉)。

2.多线程与高并发的联系。

  高并发:高并发指的是是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者socket端口集中性收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求,数据库的操作等。如果高并发处理不好,不仅仅降低了用户的体验度(请求响应时间过长),同时可能导致系统宕机,严重的甚至导致OOM异常,系统停止工作等。如果要想系统能够适应高并发状态,则需要从各个方面进行系统优化,包括,硬件、网络、系统架构、开发语言的选取、数据结构的运用、算法优化、数据库优化……。

  而多线程只是在同/异步角度上解决高并发问题的其中的一个方法手段,是在同一时刻利用计算机闲置资源的一种方式。

  多线程在高并发问题中的作用就是充分利用计算机资源,使计算机的资源在每一时刻都能达到最大的利用率,不至于浪费计算机资源使其闲置。

3.线程的创建,停止,常用方法介绍。

  1.线程的创建:

  线程创建主要有2种方式,一种是继承Thread类,重写run方法即可;(Thread类实现了Runable接口)

  另一种则是实现Runable接口,也需要重写run方法。

  线程的启动,调用start()方法即可。  我们也可以直接使用线程对象的run方法,不过直接使用,run方法就只是一个普通的方法了。

 

  其他的还有: 通过匿名内部类的方法创建;实现Callable接口。。。。。

  2.线程常用方法:

  currentThread()方法:该方法返回当前线程的信息   .getName()可以返回线程名称。

  isAlive()方法:该方法判断当前线程是否处于活动状态。

  sleep()方法:该方法是让“当前正在执行的线程“休眠指定的时间,正在执行的线程是指this.currentThread()返回的线程。

  getId()方法:该方法是获取线程的唯一标识。

  3.线程的停止:

  在java中,停止线程并不简单,不想for。。break那样说停就停,需要一定的技巧。

  线程的停止有3种方法:

  1.线程正常终止,即run()方法运行结束正常停止。

  2.使用interrupt方法中断线程。

  3.使用stop方法暴力停止线程。

  interrupt方法中断线程介绍:

    interrupt方法其实并不是直接中断线程,只是给线程添加一个中断标志。

  判断线程是否是停止状态:

    this.interrupted(); 判断当前线程是否已经中断。(判断的是这个方法所在的代码对应的线程,而不是调用对象对应的线程)

    this.isInterrupted(); 判断线程是否已经中断。(谁调用,判断谁)

  

  注:.interrupted()与isInterrupted()的区别:

    interrupted()方法判断的是所在代码对应的线程是否中断,而后者判断的是调用对象对应的线程是否停止

    前者执行后有清除状态的功能(如连续调用两次时,第一次返回true,则第二次会返回false)

     后者没有清除状态的功能(两次返回都为true)

  真正停止线程的方法:

  异常法:

    在run方法中 使用 this.interrupted();判断线程终止状态,如果为true则 throw new interruptedException()然后捕获该异常即可停止线程。

 

  return停止线程:

    在run方法中 使用 this.interrupted();判断线程终止状态,如果为true则return停止线程。 (建议使用异常法停止线程,因为还可以在catch中使线程向上抛,让线程停止的事件得以传播)。

 

  暴力法:

    使用stop()方法强行停止线程(强烈不建议使用,会造成很多不可预估的后果,已经被标记为过时)

    (使用stop方法会抛出 java.lang.ThreadDeath 异常,并且stop方法会释放锁,很容易造成数据不一致)

  注:在休眠中停止线程:

    在sleep状态下停止线程 会报异常,并且会清除线程状态值为false;

    先停止后sleep,同样会报异常 sleep interrupted;

 

4.守护线程。


http://www.lbrq.cn/news/1420165.html

相关文章:

  • 庆阳市建设局网站/qq代刷网站推广免费
  • 网站开发与托管协议/微信视频号可以推广吗
  • 手机网站吧/四川seo推广公司
  • 做外贸网站义乌/app推广赚钱
  • 可以网站可以做免费的文案广告语/杭州网站优化搜索
  • 建设网站需要什么条件/刷神马网站优化排名
  • 广东深圳网站建设服务/网页制作咨询公司
  • 产品发布网站/站长工具ip地址查询域名
  • 中企业网站建设/北京首页关键词优化
  • 公司做网站怎么做/网奇seo赚钱培训
  • 眉山市住房和城乡建设局网站/网站搜索引擎拓客
  • 辽宁省政府网站集约化建设/东莞百度seo排名
  • 电商付费推广有哪些/东莞网站建设优化技术
  • 新昌网站开发/近期国内新闻热点事件
  • 潍坊网站建设定制/sem竞价
  • wordpress图片添加音乐/广州百度seo公司
  • 南京建设集团网站/温州seo按天扣费
  • 进口彩妆做的好的网站/宁波企业seo外包
  • 郑州疫情最新通报/做排名优化
  • 如何构建企业网站/网站排名分析
  • 高质量的南京网站建设/龙岩网站推广
  • 电影日记网站怎么做/新东方考研培训机构官网
  • 橙子建站是什么东西/外贸网站搭建
  • 网站群建设的目的/百度收录查询
  • 企业管理培训课程心得/seo页面内容优化
  • 播视频网站开发/百度客服人工电话
  • 高淳网站建设/数据分析师证书
  • 哪里有营销型网站制作/河北企业网站建设
  • 网商之窗官网/关于seo的行业岗位有哪些
  • 网站如何做单项链接/国际新闻头条今日要闻
  • 简单的 VSCode 设置
  • vscode中用python调用matlab的函数(环境安装)
  • 八、SpringBoot项目热部署
  • 19.3 Transformers量化模型极速加载指南:4倍推理加速+75%显存节省实战
  • MQ迁移方案
  • 2025年机械制造、机器人与计算机工程国际会议(MMRCE 2025)