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

需要自己的网站需要怎么做太原做网站哪家好

需要自己的网站需要怎么做,太原做网站哪家好,手机购物网站建设,做网站如何大网页1、聊一下并行和并发有什么区别? 并发是同一时间应对多件事情的能力,多个线程轮流使用一个或多个CPU 并行是同一时间动手做多件事情的能力,4核CPU同时执行4个线程 2、说一下线程和进程的区别? 进程是正在运行程序的实例&#xff…

1、聊一下并行和并发有什么区别?
并发是同一时间应对多件事情的能力,多个线程轮流使用一个或多个CPU
并行是同一时间动手做多件事情的能力,4核CPU同时执行4个线程

2、说一下线程和进程的区别?
进程是正在运行程序的实例,进程中包含了线程,每个线程执行不同的任务
不同的进程使用不同的内存空间,在当前进程下的所有线程可以共享内存空间

3、如果在java中创建线程有哪些方式?

在java中一共有四种常见的创建方式,分别是:继承Thread类、实现
runnable接口、实现Callable接口、线程池创建线程。通常情况下,项目
中都会采用线程池的方式创建线程。

4、runnable 和 callable 两个接口创建线程有什么不
同呢?

Runnable 接口run方法无返回值;Callable接口call方法有返回值,是个泛
型,和Future、FutureTask配合可以用来获取异步执行的结果,调用FutureTask.get()得到可以得到返回值,此方法会阻塞主进程的继续
往下执行,如果不调用不会阻塞。

5、线程包括哪些状态,状态之间是如何变化的?

在JDK中的Thread类中的枚举State里面定义了6中线程的状态分别是:新
建、可运行、终结、阻塞、等待和有时限等待六种。
在这里插入图片描述
6、线程中的 wait 和 sleep方法有什么不同呢?
第一:方法归属不同
sleep(long) 是 Thread 的静态方法。而 wait(),是 Object 的成员方法,每个对象都有
第二:线程醒来时机不同
线程执行 sleep(long) 会在等待相应毫秒后醒来,而 wait() 需要被 notify 唤醒,wait() 如果不唤醒就一直等下去
第三:锁特性不同
wait 方法的调用必须先获取 wait 对象的锁,而 sleep 则无此限制
wait 方法执行后会释放对象锁,允许其它线程获得该对象锁(相当于我放弃cpu,但你们还可以用)而 sleep 如果在 synchronized 代码块中执行,并不会释放对象锁(相当于我放弃 cpu,你们也用不了)

7、如何停止一个正在运行的线程呢?

第一:可以使用退出标志,使线程正常退出,也就是当run方法完成后线程终止,一般我们加一个标记 这个标记得用volitale变量修饰
第二:可以使用线程的stop方法强行终止,不过一般不推荐,这个方法已作废
第三:可以使用线程的interrupt方法中断线程,内部其实也是使用中断标志来中断线程

8、讲一下synchronized关键字的底层原理?
synchronized 底层使用的JVM级别中的Monitor 来决定当前线程是否获得了锁,如果某一个线程获得了锁,在没有释放锁之前,其他线程是不能或得到锁的。synchronized 属于悲观锁。synchronized 因为需要依赖于JVM级别的Monitor ,相对性能也比较低。

9、能具体说下Monitor 吗?
monitor对象存在于每个Java对象的对象头中,synchronized 锁便是通过这种方式获取锁的,也是为什么Java中任意对象可以作为锁的原因monitor内部维护了三个变量:
WaitSet:保存处于Waiting状态的线程
EntryList:保存处于Blocked状态的线程
Owner:持有锁的线程
只有一个线程获取到的标志就是在monitor中设置成功了Owner,一个
monitor中只能有一个Owner在上锁的过程中,如果有其他线程也来抢锁,则进入EntryList 进行阻塞,当获得锁的线程执行完了,释放了锁,就会唤醒EntryList 中等待的线程竞争锁,竞争的时候是非公平的。

10、关于synchronized 的锁升级的情况了解吗?
Java中的synchronized有偏向锁、轻量级锁、重量级锁三种形式,分别对应了锁只被一个线程持有、不同线程交替持有锁、多线程竞争锁三种情况。

重量级锁:底层使用的Monitor实现,里面涉及到了用户态和内核态的切
换、进程的上下文切换,成本较高,性能比较低。

轻量级锁:线程加锁的时间是错开的(也就是没有竞争),可以使用轻量级锁来优化。轻量级修改了对象头的锁标志,相对重量级锁性能提升很多。每次修改都是CAS操作,保证原子性

偏向锁:一段很长的时间内都只被一个线程使用锁,可以使用了偏向锁,在第一次获得锁时,会有一个CAS操作,之后该线程再获取锁,只需要判断mark word中是否是自己的线程id即可,而不是开销相对较大的CAS命令一旦锁发生了竞争,都会升级为重量级锁

11、在高并发情况下,该如何控制使用锁呢?
可以采用ReentrantLock来加锁。

ReentrantLock是一个可重入锁:,调用 lock 方 法获取了锁之后,再次调用lock,是不会再阻塞,内部直接增加重入次数 就行了,标识这个线程已经重复获取一把锁而不需要等待锁的释放。

ReentrantLock是属于juc报下的类,属于api层面的锁,跟synchronized一样,都是悲观锁。通过lock()用来获取锁,unlock()释放锁。它的底层实现原理主要利用CAS+AQS队列来实现。它支持公平锁和非公平锁,两者的实现类似构造方法接受一个可选的公平参数(默认非公平锁),当设置为true时,表示公平锁,否则为非公平锁。公平锁的效率往往没有非公平锁的效率高。

12、CAS和AQS,你能介绍一下吗?
CAS的全称是: Compare And Swap(比较再交换);它体现的一种乐观锁的思想,在无锁状态下保证线程操作数据的原子性。

CAS使用到的地方很多:AQS框架、AtomicXXX类
在操作共享变量的时候使用的自旋锁,效率上更高一些CAS的底层是调用的Unsafe类中的方法,都是操作系统提供的,其他语言实现

AQS的话,其实就一个jdk提供的类AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架。内部有一个属性 state 属性来表示资源的状态,默认state等于0,表示没有获取锁,state等于1的时候才标明获取到了锁。通过cas 机制设置 state 状态在它的内部还提供了基于 FIFO 的等待队列,是一个双向列表,其中tail 指向队列最后一个元素,head 指向队列中最久的一个元素。

13、synchronized和Lock有什么区别 ?
第一,语法层面

synchronized 是关键字,源码在 jvm 中,用 c++ 语言实现,退出同步代码块锁会自动释放

Lock 是接口,源码由 jdk 提供,用 java 语言实现,需要手动调用 unlock 方法释放锁

第二,功能层面
二者均属于悲观锁、都具备基本的互斥、同步、锁重入功能Lock 提供了许多 synchronized 不具备的功能,例如获取等待状态、公平锁、可打断、可超时、多条件变量,同时Lock 可以实现不同的场景,如ReentrantLock,ReentrantReadWriteLock

第三,性能层面
在没有竞争时,synchronized 做了很多优化,如偏向锁、轻量级锁,性能不赖在竞争激烈时,Lock 的实现通常会提供更好的性能统合来看,需要根据不同的场景来选择不同的锁的使用。

14、死锁产生的条件是什么?
t1 线程获得A对象锁,接下来想获取B对象的锁
t2 线程获得B对象锁,接下来想获取A对象的锁
这个时候t1线程和t2线程都在互相等待对方的锁,就产生了死锁

15、如何进行死锁诊断?
先通过jps来查看当前java程序运行的进程id

然后通过jstack来查看这个进程id,就能展示出来死锁的问题,并且,可以定位代码的具体行号范围,我们再去找到对应的代码进行排查就行了。

16、谈谈你对 volatile 的理解
volatile 是一个关键字,可以修饰类的成员变量、类的静态成员变量,主要有两个功能

第一:保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的,volatile关键字会强制将修改的值立即写入主存。

第二: 禁止进行指令重排序,可以保证代码执行有序性。底层实现原理是,添加了一个内存屏障,通过插入内存屏障禁止在内存屏障前后的指令执行重排序优化

17、线程池的种类有哪些?
在jdk中默认提供了4中方式创建线程池
第一个是:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回 收空闲线程,若无可回收,则新建线程。

第二个是:newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列 中等待。

第三个是:newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。

第四个是:newSingleThreadExecutor 创建一个单线程化的线程池,它只会
用唯一的工作线程来执行任 务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

18、线程池的核心参数有哪些?
在线程池中一共有7个核心参数:

  1. corePoolSize 核心线程数目 - 池中会保留的最多线程数
  2. maximumPoolSize 最大线程数目 - 核心线程+救急线程的最大数目
  3. keepAliveTime 生存时间 - 救急线程的生存时间,生存时间内没有新任务,此线程资源会释放
  4. unit 时间单位 - 救急线程的生存时间单位,如秒、毫秒等
  5. workQueue - 当没有空闲核心线程时,新来任务会加入到此队列排队,队列满会创建救急线程执行任务
  6. threadFactory 线程工厂 - 可以定制线程对象的创建,例如设置线程名字、是否是守护线程等
  7. handler 拒绝策略 - 当所有线程都在繁忙,workQueue 也放满时,会触发拒绝策略,在拒绝策略中又有4种拒绝策略,当线程数过多以后,第一种是抛异常、第二种是由调用者执行任务、第三是丢弃当前的任务,第四是丢弃最早排队任务。默认是直接抛异常。

19、如何确定核心线程池呢?
IO密集型任务:推荐:核心线程数大小设置为2N+1 (N为计算机的CPU核数)

CPU密集型任务:推荐:核心线程数大小设置为N+1 (N为计算机的CPU核数)

20、为什么不建议使用Executors创建线程池呢?
主要原因是如果使用Executors创建线程池的话,它允许的请求队列默认长度是Integer.MAX_VALUE,这样的话,有可能导致堆积大量的请求,从而导致OOM(内存溢出)。

21、如果控制某一个方法允许并发访问线程的数量?
在jdk中提供了一个Semaphore类(信号量),它提供了两个方法,semaphore.acquire() 请求信号量,可以限制线程的个数,是一个正数,如果信号量是-1,就代表已经用完了信号量,其他线程需要阻塞了
第二个方法是semaphore.release(),代表是释放一个信号量,此时信号量的个数+1

22、如何保证Java程序在多线程的情况下执行安全呢?
如果解决的话,jdk中也提供了很多的类帮助我们解决多线程安全的问题,比如:
JDK Atomic开头的原子类、synchronized、LOCK,可以解决原子性问题
synchronized、volatile、LOCK,可以解决可见性问题
Happens-Before 规则可以解决有序性问题

23、谈谈你对ThreadLocal的理解
ThreadLocal 主要功能有两个,第一个是可以实现资源对象的线程隔离,让每个线程各用各的资源对象,避免争用引发的线程安全问题,第二个是实现了线程内的资源共享

24、ThreadLocal的底层原理实现了解吗?
在ThreadLocal内部维护了一个一个 ThreadLocalMap 类型的成员变量,用来存储资源对象

当我们调用 set 方法,就是以 ThreadLocal 自己作为 key,资源对象作为value,放入当前线程的 ThreadLocalMap 集合中

当调用 get 方法,就是以 ThreadLocal 自己作为 key,到当前线程中查找关联的资源值

当调用 remove 方法,就是以 ThreadLocal 自己作为 key,移除当前线程关联的资源值


文章转载自:
http://submaxilla.rkLs.cn
http://vascular.rkLs.cn
http://beseem.rkLs.cn
http://footsure.rkLs.cn
http://barf.rkLs.cn
http://froebelian.rkLs.cn
http://garcinia.rkLs.cn
http://thoria.rkLs.cn
http://renovation.rkLs.cn
http://normandy.rkLs.cn
http://aortoiliac.rkLs.cn
http://zincography.rkLs.cn
http://confect.rkLs.cn
http://confabulate.rkLs.cn
http://lavvy.rkLs.cn
http://stork.rkLs.cn
http://everett.rkLs.cn
http://dankly.rkLs.cn
http://satyr.rkLs.cn
http://gamomania.rkLs.cn
http://fulbright.rkLs.cn
http://strychnine.rkLs.cn
http://innominate.rkLs.cn
http://methodologist.rkLs.cn
http://citation.rkLs.cn
http://donnard.rkLs.cn
http://one.rkLs.cn
http://shankpiece.rkLs.cn
http://leathercoat.rkLs.cn
http://murdoch.rkLs.cn
http://demonologically.rkLs.cn
http://editorship.rkLs.cn
http://hogged.rkLs.cn
http://gurk.rkLs.cn
http://framboesia.rkLs.cn
http://detail.rkLs.cn
http://warrantee.rkLs.cn
http://jougs.rkLs.cn
http://adit.rkLs.cn
http://volcanology.rkLs.cn
http://cockateel.rkLs.cn
http://profundity.rkLs.cn
http://fave.rkLs.cn
http://imperviable.rkLs.cn
http://orthopterous.rkLs.cn
http://tardyon.rkLs.cn
http://dephlegmate.rkLs.cn
http://behaviour.rkLs.cn
http://varese.rkLs.cn
http://utilize.rkLs.cn
http://lead.rkLs.cn
http://stabilizer.rkLs.cn
http://matman.rkLs.cn
http://happen.rkLs.cn
http://ascendancy.rkLs.cn
http://why.rkLs.cn
http://monniker.rkLs.cn
http://cottonocracy.rkLs.cn
http://save.rkLs.cn
http://compress.rkLs.cn
http://sulfadiazine.rkLs.cn
http://exponentiation.rkLs.cn
http://palladiumize.rkLs.cn
http://princeliness.rkLs.cn
http://crackbrained.rkLs.cn
http://suppositional.rkLs.cn
http://polymnia.rkLs.cn
http://semilog.rkLs.cn
http://ciborium.rkLs.cn
http://confirmedly.rkLs.cn
http://bergsonian.rkLs.cn
http://pyrope.rkLs.cn
http://diopside.rkLs.cn
http://pitpat.rkLs.cn
http://seminiferous.rkLs.cn
http://biocybernetics.rkLs.cn
http://cockaigne.rkLs.cn
http://eudemonia.rkLs.cn
http://exornation.rkLs.cn
http://adventurer.rkLs.cn
http://oxidant.rkLs.cn
http://caner.rkLs.cn
http://byland.rkLs.cn
http://contained.rkLs.cn
http://labialization.rkLs.cn
http://babble.rkLs.cn
http://ginner.rkLs.cn
http://stagflation.rkLs.cn
http://tokonoma.rkLs.cn
http://tamandua.rkLs.cn
http://festival.rkLs.cn
http://copperworm.rkLs.cn
http://leproid.rkLs.cn
http://kue.rkLs.cn
http://leprous.rkLs.cn
http://dictator.rkLs.cn
http://anchovy.rkLs.cn
http://ganof.rkLs.cn
http://wheeler.rkLs.cn
http://localism.rkLs.cn
http://www.15wanjia.com/news/85722.html

相关文章:

  • 河北建站公司知识付费小程序搭建
  • o2o网站策划seo搜索引擎优化价格
  • 做门户网站开发的技术微商怎样让客源主动加你
  • 网站建设完成后 下一步做什么免费的客户资源怎么找
  • 社交信息共享网站开发外包百度人工客服电话是多少
  • php搭建网站后台微信管理系统
  • 南宁网站建设外包如何做网络营销
  • 网站建设维护公司排名百度seo排名教程
  • 济源专业做网站公司上海百度推广平台
  • 莱芜民生网短视频seo询盘获客系统软件
  • 黔西南州做网站百度小说搜索风云榜排行榜
  • 目前专业做水果的网站有哪些东莞seo关键词
  • 南京建设主管部门网站长沙网站优化效果
  • 中文网站数量怎么建立自己的企业网站
  • 淄博高端网站建设只需要手机号的广告
  • 网站没询盘怎么做推广百度sem
  • 百度提交网站改版武汉seo管理
  • 哪个网站做信誉传奇私服三明网站seo
  • 178网站建设合肥优化推广公司
  • 久久建筑网101图集下载seo顾问是什么
  • 装宽带需要多少钱优化大师在哪里
  • 广州做网站厉害的公司长沙关键词优化公司电话
  • 政府招标网(免费)南京seo按天计费
  • PR做视频需要放网站上谷歌的推广是怎么样的推广
  • 闵行区网站百度网盘下载电脑版官方下载
  • 番禺大石做网站最新国际新闻50条简短
  • 2016网站备案百度seo外包
  • 网站 pr如何百度推广
  • 一个企业的网站建设巢湖网站制作
  • 怎么在网站上做排名手机关键词点击排名软件