为什么要用多线程

任何技术的出现都是为了解决现有的问题。
以前的互联网主要是一种独立的服务,规模较小。
现在有多个集群服务,如果多个用户同时访问服务器,就会有很多线程同时访问服务器。
例如,在常见的电子商务系统中,大量用户会同时访问服务器,例如每小时销售的情况。
如果不用多线程的话,基本没什么用……所以现在公司里的开发基本上都是多线程的。
使用多线程确实提高了运行效率。
但同时也会出现一些让人头疼的问题。
比如,要特别注意数据的增删改查,这是一个线程安全的问题。
保证线程安全的方法有很多,比如加锁。
但是,可能会出现其他问题,例如死锁,因此与多线程相关的问题会比较麻烦。
面试官现在也喜欢测试你的多线程能力。
例如:发生死锁的条件是什么以及如何解决死锁?乐观锁和悲观锁如何实现以及实现方法有哪些?ReentrantLock中非公平锁和公平锁是如何实现的?锁和同步有什么区别?ReentrantLock和synchronized如何选择?如今,多线程是面试中的常客,也是我们重要的知识点。
因此,我们需要了解多线程的原理、它可能引起的问题以及如何解决这些问题,才能赢得高薪职位。

为什么要在os中引入线程?

操作系统中启动进程的目的是为了让多个程序同时执行,提高资源利用率。
操作系统中引入线程的目的是为了减少程序在并发执行时所花费的时间和空间的开销,从而使操作系统具有更好的并发性。
线程是进程中的执行单元,负责当前进程中程序的执行。
一个进程至少有一个线程。
线程也称为轻量级进程或进程元素。
引入线程机制后,减少了并发带来的系统开销,提高了系统并发性。
每个进程的内存地址空间是相互独立的,进程间的通信只有请求操作系统内核的帮助才能完成。
由于进程拥有资源,因此操作系统在创建、取消和切换过程中必须付出大量的时间和空间开销,这限制了系统中调度的进程数量,并且程切换非常频繁地发生,应该没有进一步的改善。
并发程度。
进程间通信需要请求操作系统服务,这是昂贵的。
同一进程中的线程之间的通信不需要操作系统干预,而且开销也很低。