随笔分类 - 线程类
摘要:1.关于在单核CPU与多核CPU中,线程的执行问题? 当接触到了多线程,就不免的要设计到CPU,因为线程是需要获得CPU的准许指令(由CPU来调度)之后,才可以执行任务。那么在单核CPU中,在某一时刻时,是只有一个线程在执行任务。在多核CPU中,就有多个线程在执行任务。 2.单核CPU中的‘假’并行
阅读全文
摘要:并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。 在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程
阅读全文
摘要:1.进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。 2.三者的区别 线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程是的)。 协程和线程一样共享堆,不共享栈,协程由程序员在协程的代码里显示调度。 进程和其他两个的区别还是很明显的。 3.协程和线
阅读全文
摘要:1.进程是系统进行资源分配和调度的一个独立单位,而线程则是进程的一个实体。是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
阅读全文
摘要:1.存在着资源竞争,那么就会存在着恶意竞争,当线程之间为了统一资源进行了恶意竞争时,就有可能产生死锁状态。 2.在多线程中,面对同一个全局变量资源,会采用互斥锁来解决线程有可能会对资源做出修改的问题,从而保证了代码的完整性和准确性,但是互斥锁并不是唯一的,示例如下: 当存在着多个资源时,线程A对部分
阅读全文
摘要:1.同步,在线程中指的不是同时,而是协同。如同一个进程中,有两个子线程,那么两个子线程如果符合一个同步状态的话,就是子线程A先完成,其次才是子线程B. 2.一般在这种情况下,会采取同步。在进程或者线程中,如果A在执行到某一步需要一个结果或者参数,但是这个结果或者参数恰好是B来完成的,那么A就会暂停下
阅读全文
摘要:1.在多线程中,不可避免的一个问题,就是全局变量资源存在着被多个线程调用的问题,在调用的过程中就存在着资源竞争 2.这种资源竞争是如何产生的呢? 如同上述代码,当线程执行次数有限时,全局资源不会发生大的变化,但是当高并发时,就会产生资源竞争问题,如以下代码: 3.如何解决资源竞争问题? 当存在多个线
阅读全文
摘要:1.如今的电脑cup已经是多核了,可以实现多任务同时完成。 但是在之前,cpu仍然处于单核状态时,同样也可以实现多任务,那么是如何完成的呢? 其实是,让多任务交替执行,由于cpu的执行速度太快了,多以让人们看起来是同时在执行,其实只是伪多任务罢了。 2.此时,就牵涉到了一个并行的问题,在什么样的情况
阅读全文