string、stringbuffer、stringBuilder的区别
可以从两个方面介绍:
- new的字符串是否可变
因为string的char是由final修饰的,所以string创建的字符串是不可变的,stringbuffer和stringbuilder是可变的 - 线程安全性
正是因为string是由final修饰不可变,所以string的线程是安全的。
另外两个,stringbuffer是线程安全的,因为加了synchronized锁。stringbuilder是线程不安全的。
字符串类型 | 线程是否安全 |
---|---|
string | 安全 |
stringbuffer | 安全 |
stringBuilder | 不安全 |
什么是线程?线程和进程之间是什么关系?
进程就是一个程序,是操作系统可以调度进行资源分配的基本单位。线程包含在进程之中,一个进程可以含有多个线程,线程是操作系统能够进行运算调度的最小单位。
区别:
线程是任务调度的最小单元,共用进程内的资源。
进程是资源分配的最小单元,与其他进程资源互相独立。
什么是多线程?优缺点是什么?
多线程就是多个线程并发执行
优点:
1.使程序运行的更快
2.可以分别设置各个任务的优先级以优化性能。
3.可以随时停止
4.当前没有进行处理的任务时可以将处理器时间让给其它任务
缺点:
1.等候使用共享资源时造成程序的运行速度变慢。
2.额外的 CPU开销。
3.线程的死锁。即较长时间的等待或资源竞争以及死锁等多线程症状。
线程的五个状态
创建、就绪、运行、阻塞、死亡