b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Java多线程核心知识点的整理(2)

电脑杂谈  发布时间:2020-06-06 14:09:31  来源:网络整理

java如何避免死锁_java线程死锁例子_java多线程避免死锁

(1)ReentrantLock可以设置获取锁的等待时间,以避免死锁

(2)ReentrantLock可以获取各种锁的信息

(3)ReentrantLock可以灵活地实现多渠道通知

此外,两者的锁定机制实际上是不同的. ReentrantLock的底部调用Unsafe的park方法进行锁定,并且同步操作应该是对象标头中的标记词. 我不确定.

22. 什么是乐观锁定和悲观锁定

(1)乐观锁: 就像它的名字一样,它对并发之间的操作所引起的线程安全问题持乐观态度. 乐观锁认为竞争并不总是发生的,因此它不需要保持锁,并且会进行比较. 当原子操作试图修改内存中的变量时,将替换这两个动作. 如果失败,则表明存在冲突,然后应该有相应的重试逻辑.

(2)悲观锁: 仍然像它的名字一样,它对并发之间的操作所引起的线程安全问题持悲观状态,悲观锁认为竞争总会发生,因此每次对资源执行操作时,它将保持有一个独占锁,就像同步锁一样. 不管是三,七,二十一,都直接访问该锁来操作资源.

23. 线程B如何知道线程A修改了变量

24. 同步,易失,CAS的比较

25. 睡眠方法和等待方法有什么区别?

这个问题经常被问到. 睡眠方法和等待方法都可以用于在特定时间段内放弃CPU. 区别在于,如果线程持有对象的监视器,则sleep方法将不会放弃该对象的监视器,wait方法将放弃该对象的监视器

26. 什么是ThreadLocal?有什么用?

ThreadLocal是本地线程复制变量工具类. 它主要用于在私有线程和该线程存储的复制对象之间进行映射. 每个线程之间的变量不会互相干扰. 在高并发场景中,可以实现无状态调用,特别适合每个线程所依赖的变量值. 完成现场.

简单地说,ThreadLocal是一种交换时间的方式. 在每个线程中,维护通过开放地址方法实现的ThreadLocal.ThreadLocalMap来隔离数据,并且不共享数据. 自然地,没有线程安全性. 问题.

27. 为什么应该在同步块中调用wait()方法和notify()/ notifyAll()方法

这是JDK必需的. wait()方法和notify()/ notifyAll()方法必须先获取对象的锁,然后才能调用

28. 多线程同步有哪些方法?

同步关键字,锁锁实现,分布式锁等

29. 线程调度策略

线程调度程序选择优先级最高的线程来运行,但是如果发生以下情况,该线程将被终止:

(1)程体中调用yield方法以放弃占用CPU的权限

(2)程主体中调用sleep方法以使线程进入睡眠状态

(3)线程由于IO操作而被阻止

(4)出现另一个更高优先级的线程

(5)在支持时间片的系统中,线程的时间片用完了

30. 什么是ConcurrentHashMap的并发性

ConcurrentHashMap并发性是段的大小,默认值为16,这意味着最多可以有16个线程同时操作ConcurrentHashMap,这也是ConcurrentHashMap到Hashtable的最大优势,无论如何,都是Hashtable可以同时由两个线程获得哈希表中的数据吗?

31. Java死锁以及如何避免死锁?

Java中的死锁是一种编程情况,其中两个或多个线程被永久阻止. Java死锁情况发生在至少两个线程和两个或更多资源的情况下.

Java死锁的根本原因是在申请锁时发生了交叉闭环应用程序.

死锁的原因

1)多个线程涉及多个锁,并且这些锁之间存在交叉,因此可能导致锁依赖关系的闭环.

例如: 当线程获取锁A而不释放它时,它申请锁B. 这时,另一个线程已经获取了锁B,并且必须在释放锁B之前获取锁A,因此关闭循环发生并陷入死锁循环.

2)默认的锁定应用程序操作被阻止.

因此,为避免死锁,当存在多个对象锁交叉时,我们必须仔细检查这些对象类中的所有方法. 是否有可能导致锁定依赖关系循环. 简而言之,请避免在同步方法中调用其他对象的延迟方法和同步方法.

32. 如何唤醒被阻塞的线程

如果线程由于调用wait(),sleep()或join()方法而被阻塞,则可以通过引发InterruptedException来中断线程并唤醒它;如果线程遇到IO阻塞,则无能为力,因为IO由操作系统实现,并且Java代码无法直接接触操作系统.

java线程死锁例子_java如何避免死锁_java多线程避免死锁

33. 不可变对象如何帮助多线程处理?

前面提到的问题之一,不可变对象确保对象的内存可见性,并且不需要额外的同步手段来读取不可变对象,从而提高了代码执行效率.

34. 什么是多线程上下文切换

多线程上下文切换是指将CPU的控制从已经运行的线程切换到准备就绪并等待获取CPU执行权限的另一个线程的过程.

35. 如果在提交任务时线程池队列已满,那会发生什么?

与此处不同:

如果您使用的是无界队列LinkedBlockingQueue,即无界队列,没关系,继续将任务添加到阻塞队列中等待执行,因为LinkedBlockingQueue几乎可以被视为无限队列,因此您可以如果您使用的是ArrayBlockingQueue之类的有界队列,则可以无限期地存储任务,该任务将首先添加到ArrayBlockingQueue,ArrayBlockingQueue已满,并且线程数将根据maximumPoolSize的值增加,如果线程数仍在增加,但是ArrayBlockingQueue仍然是满的,那么将使用拒绝策略RejectedExecutionHandler来处理完整的Task,默认值为AbortPolicy

36. Java中使用的线程调度算法是什么

抢先. 线程用完CPU后,操作系统会根据线程优先级和线程饥饿等数据计算总优先级,并将下一个时间片分配给某个线程以供执行.

37. 什么是线程调度程序和时间分片?

线程调度程序是一项操作系统服务,负责为处于Runnable状态的线程分配CPU时间. 一旦创建线程并启动它,它的执行就取决于线程调度程序的实现. 时间分片是指将可用的CPU时间分配给可用的可运行线程的过程. 分配CPU时间可以基于线程优先级或线程等待的时间. 线程调度不受Java虚拟机的控制,因此,最好由应用程序控制线程调度(也就是说,不要让您的程序依赖线程的优先级).

38. Java Concurrency API中的Lock接口是什么?与同步相比,它有什么优势?

与同步方法和同步块相比,Lock接口提供了更具扩展性的锁定操作. 它们提供了更灵活的结构,可以具有完全不同的属性,并且可以支持多个相关类的条件对象.

它的优点是:

39. 单例模式下的线程安全性

这个老问题,首先要说的是,单例模式的线程安全性意味着: 某个类的实例在多线程环境中只会创建一次. 编写单例模式的方法有很多,让我总结一下:

(1)如何编写饥饿的中文单例模式: 线程安全

(2)如何编写惰性单例模式: 非线程安全

(3)如何编写双重检查锁定单写模式: 线程安全

40. 信号量是做什么的?

信号量是一个信号量,它的作用是限制某个代码块的并发数量. 信号量具有一个构造函数,该构造函数可以传入类型n的整数,这意味着最多n个线程可以访问某些代码,如果超过n,则请等待,等待某个线程完成代码块,下一个线程再次输入. 由此可以看出,如果在Semaphore构造函数中传递的int整数n = 1等于已同步.

41. 什么是执行者?

执行程序为执行程序,ExecutorService,ScheduledExecutorService,ThreadFactory和Callable类提供一些工具方法.

执行程序可用于方便地创建线程池

42. 线程类的构造方法以及哪个静态块称为

这是一个非常棘手和狡猾的问题. 请记住: 线程类的构造方法和静态块由其中new的线程类所在的线程调用,而run方法中的代码则由线程本身调用.

如果上面的语句使您感到困惑,那么我将举一个示例,假设Thread1在Thread2中是新的,而Thread2在main函数中是新的,然后:

(1)Thread2的构造方法和静态块由主线程调用,而Thread2的run()方法由Thread2本身调用

(2)Thread2调用Thread1的构造方法和静态块,而Thread1调用Thread1的run()方法

43. 哪种同步方法和同步块是更好的选择

Sync块,这意味着同步块越小越好.

44. 太多的Java线程会导致什么异常?

1)线程的生命周期开销非常高

2)占用过多的CPU资源

如果正在运行的线程多于可用处理器,则某些线程将处于空闲状态. 大量空闲线程将占用大量内存,从而给垃圾回收器带来压力,并且在争夺CPU资源时,大量线程将招致其他性能开销.

3)降低稳定性

JVM对可以创建的线程数有限制. 此限制将随平台而变化,并受多种因素的影响,包括JVM启动参数和Thread构造函数中的请求堆栈的大小. 以及底层操作系统对线程的限制. 如果违反了这些限制,则可能引发OutOfMemoryError.

添加Java高级体系结构通信组378461078


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-236046-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...