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

做网站建设销售工资企业产品营销策划推广

做网站建设销售工资,企业产品营销策划推广,专业做淘宝网站公司,访问国外网站的软件1.什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。 2.线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任…
1.什么是线程?

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。

2.线程和进程有什么区别?

线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。

3.如何在Java中实现线程?

一共有三种方式:

1.继承Thread类

2.实现Runnable接口,重写run方法

2.实现Callable接口,重写call方法(可以返回值和抛出异常)

  1. 用Runnable还是Thread?

在java中不支持多继承,支持多实现,如果该类需要继承其它类,则选择Runnable;

5.Thread 类中的start() 和 run() 方法有什么区别?

start()方法被用来启动新创建的线程,使进程就绪状态,而run()方法 ,执行线程,使线程进入运行状态。

6.线程的几种状态

1、新建状态(New):新创建了一个线程对象。

2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。

3、运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。

4、阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。

阻塞的情况分三种:

(1)、等待阻塞:运行的线程执行wait()方法,该线程会释放占用的所有资源,JVM会把该线程放入“等待池”中。进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用notify()或notifyAll()方法才能被唤醒,

(2)、同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入“锁池”中。

(3)、其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。

5、死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。

7.线程同步的几种方法

1.synchronized关键字修饰语句块或者修饰方法

2.volatile关键字修饰变量

3.使用重入锁Lock

ReentrantLock类是可重入、互斥、实现了Lock接口的锁,
它与使用synchronized方法和快具有相同的基本行为和语义,并且扩展了其能力

ReenreantLock类的常用方法有:

ReentrantLock() : 创建一个ReentrantLock实例
lock() : 获得锁
unlock() : 释放锁
注:ReentrantLock()还有一个可以创建公平锁的构造方法,但由于能大幅度降低程序运行效率,不推荐使用

4.使用线程本地变量 ThreadLocal

5.使用阻塞队列实现线程同步(java.util.concurrent包中提供的类)

8.volatile与synchronized的区别

1)volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住.
2)volatile仅能使用在变量级别,synchronized则可以使用在变量,方法.
3)volatile仅能实现变量的修改可见性,而synchronized则可以保证变量的修改可见性和原子性.

4)volatile不会造成线程的阻塞,而synchronized可能会造成线程的阻塞.

9.终止线程的3中方式

1.线程正常执行完毕,正常退出。

2.使用while()循环在特定条件下退出。

3.使用interrupt方法终止线程。

10.什么是线程池? 为什么要使用它?

创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变长,而且一个进程能创建的线程数有限。为了避免这些问题,在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。线程池使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务。线程池主要作用是便于管理线程,节约时间与资源。

11.线程死锁

两个或两个以上的线程争夺共享资源,并各自不释放手中的资源,而造成死锁。

解决办法:1.让所有的线程按照一定的顺序获得一组锁;2.将多个锁组成一组并放到一个锁里。

12.sleep()和wait()的区别

sleep()使线程暂停一段时间,占用CUP资源,没用释放锁

wait()使线程进入等待池中,释放CPU资源,释放锁

http://www.ds6.com.cn/news/118386.html

相关文章:

  • 网站如何做QQ登录网络推广营销网站建设专家
  • 网站克隆下来了然后再怎么做百度入口提交
  • wordpress icp备案站长工具的使用seo综合查询排名
  • 杭州网站建设哪个平台好班级优化大师下载
  • 免费自助建站哪家好服务营销的七个要素
  • 个人建一个网站多少钱网页在线客服免费版
  • 微网站建设包括哪些网店培训教程
  • 网站如何做excel预览海南网站网络推广
  • 做创意礼品定制的网站关键词自动优化工具
  • 手机网站建设找哪家优化工具箱
  • 网站欢迎页源码促销方法100种
  • 池州有哪些做网站的长沙官网seo技巧
  • 做衣服接订单的网站网站入口百度
  • 手机网站制作推荐网站排名提升软件
  • 网站请及时续费公司网站制作网络公司
  • 有关做有机肥的企业网站知名网站
  • 阿里云做的网站怎么备份动态网站设计
  • 做支付宝二维码网站爱站工具包的模块有哪些
  • 网站开发使用语言快速seo关键词优化技巧
  • 大型门户网站建设运营网络运营seo是什么
  • 网站制作需要学什么厦门网站搜索引擎优化
  • 钟落潭有没有做网站的seo排名软件怎么做
  • 横岗做网站seo建站技术
  • 网站开发费算无形资产吗谷歌安装器
  • 南安网站设计成都最新数据消息
  • 电子商务网站建设与管理笔试谈谈你对网络营销的看法
  • 电子商务网站设计与建设郑州网站推广优化
  • 网站建设中扁平化结构百度推广基木鱼
  • 黄冈黄页宜昌seo
  • 网站开发平台的定义东莞企业推广网站制作