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

java多线程死锁????回答主要是三个方面:(1)hash(6)

电脑杂谈  发布时间:2018-01-23 01:02:05  来源:网络整理

3、可重入锁

一个线程加锁了,该线程中调用其他的方法,也同样加锁了,如递归;

4、读写锁

对一个资源的访问,可以分成读锁和写锁;

5、可中断锁

一个线程等待的时间太长,可以中断等待的过程,去执行其他的事情;

6、公平锁

尽量以锁的顺序来获取锁;

7、优化方面的锁

1)自旋锁(自适应锁)

共享数据锁定状态比较短,对于阻塞的线程不要立马挂起,而是自旋一下就可得到,避免线程切换的开销。

2)锁消除

有些数据是不会被其他线程访问到的,这时候就不需要加同步措施,进行锁消除。

3)锁粗化

同步块的作用域一般越小越好,但是对一个对象的连续操作,不停的加锁解锁,这样会出现很大的性能问题。

4)轻量级锁

为了减少获得锁和释放锁所带来的性能消耗。Java 1.6有无锁状态,偏向锁状态,轻量级锁状态和重量级锁状态四个状态。随着竞争,不断升级,不能降级。

5)偏向锁

目的是消除数据在无竞争情况下的同步原语。进一步提升程序的运行性能。 偏向锁就是偏心的锁,意思是这个锁会偏向第一个获得他的线程。

java多线程死锁_java里多个线程池_java多线程创建方式

Throwable是java语言中所有错误和异常的基类,它由两个子类:Error, Exception.

异常种类

Error: Error为错误,是程序无法处理的,如OutOfMemoryError,ThreadDeath等,出现这种情况你唯一能做的就是听之任之,交由JVM来处理,不过大多数情况下会选择终止线程。

Exception: Exception是程序可以处理的异常,它又分为两种CheckedException(受检异常),一种是unCheckedException(不受检异常)

CheckedException发生在编译阶段,必须要使用try……catch(或则throws)否则编译不通过

unCheckedException发生在运行期,具有不确定性,主要是由于程序的逻辑问题所引起的,难以排查,我们一般都需要纵观全局才能够发现这类的异常错误。

常见异常的基类:

IOException

RuntimeException

这里写图片描述

5、 加载问题

Static:

1)修饰变量:静态变量随着类加载时被完全初始化,内存中只有一个,且JVM也只会为它分配一次内存,所有类共享静态变量。

2)修饰方法:在类加载的时候就在,不依赖任何实例;static方法必须实现,不能用abstract修饰。

3)修饰代码块:在类加载完成后就会执行代码块中的内容

4)执行的顺序:父类静态代码块—>子类静态代码块—->父类非静态代码块—->父类构造方法—–>子类非静态代码块—–>子类构造方法

Final:

1)修饰变量:编译期常量(类加载的过程完成初始化,编译后带入到任何计算式中,只能是基本类型) 运行时常量(基本数据类型或引用数据类型,引用不可变,但引用的对象内容可变)

2)修饰方法:不能被继承,不能被子类修改

3)修饰类:不能被继承

修饰形参:final形参不可变

1)都是final类,都不允许被继承;

2)String长度是不可变动的,StringBuffer、StringBuilder长度是可变的;

3)StringBuffer是线程安全的(在StringBuilder方法上添加关键字synchronized),StringBuilder线程不安全

4)StringBuilder比StringBuffer拥有更好的性能;

5)如果一个String类型的字符串,在编译时就可以确定是一个字符串常量,则编译完成之后,字符串会自动拼接成一个常量,此时String的速度比StringBuilder和StringBuffer的性能好的多。


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

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

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