
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在达内报名学习了Java编程开发的课程学习,下面我们就通过案例分析来简单了解一下,零基础学习Java编程需要掌握哪些知识。
1、程序、线程、进程和超线程
程序程序是一组指令的有序集合。它本身没有任何运行的含义,只是存在于计算机系统的硬盘等存储空间中一个静态的实体文件。
进程进程是处于动态条件下由操作系统维护的系统资源管理实体。进程具有自己的生命周期, 反映了一个程序在一定的数据集上运行的全部动态过程。需要加载到内存中,点开一个exe就是开启了一个进程。
2、线程
线程则是进程的一个实体,是比进程更小的能独立运行的基本单位,是被系统调度和分配的基本单元。线程自身基本上不拥有系统资源,只拥有一点在运行中必不可少的资源 (如程序计数器、一组寄存器和调用堆栈), 但它与同属一个进程的其他线程共享所属进程所拥有的全部资源,同一个进程的多个线程可以并发执行,从而提高了系统资源的利用率。
超线程超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单颗CPU都能进行线程级并行计算,进而兼容多线程操作系统和软件。一般一个CPU对应一个线程,通过超线程可以达到比如8核16线程
3、线程和进程的区别和联系:
一个程序的执行至少有一个进程,一个进程至少包含一个线程(主线程)。
线程的划分尺度小于进程,所以多线程程序并发性更高。
进程是系统进行资源分配和调度的一个独立单位,线程是CPU调度和分派的基本单位。同一进程内允许多个线程共享其资源。
进程拥有独立的内存单元,即进程之间相互独立;同一进程内多个线程共享内存。因此,线程间能通过读写操作对它们都可见的内存进行通信,而进程间的相互通信则需要借助于消息的传递。
每个线程都有一个程序运行的入口,顺序执行序列和程序运行的出口,但线程不能单独执行,必须依存于进程中,由进程控制多个线程的执行
进程比线程拥有更多的相应状态,所以创建或销毁进程的开销要比创建或销毁线程的开销大得多。因此,进程存在的时间长,而线程则随着计算的进行不断地动态地派生和缩并。
一个线程可以创建和撤销另一个线程。而且同一进程中的多个线程共享所属进程所拥有的全部资源;同时进程之间也可以并行执行,从而更好地改善了系统资源的利用率。
4、线程绑定
计算机系统是由一个或多个物理处理器和内存组成,运行的程序会将内存分为两个部分,一部分是共享变量使用的存储区域, 另一部分供各线程的私有变量使用的存储区域。线程绑定是将线程绑定在固定的处理器上, 从而在线程与处理器之间建立一对一的映射关系。如果不进行线程绑定,线程可能在不同的时间片运行在不同的处理器上。我们知道,每个处理器是有自己的多级缓存的,如果线程切来切去,那么cache命中率肯定不高,程序性能也会受到影响。通过线程绑定,程序能够获得更高的cache利用率从而提高程序性能。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。