java的线程机制(一)

本篇是我对java的线程的总结的第一篇,因为线程本身是一个大的概念,属于系统一级的,所以在以后的总结中可能还会涉及到一些基础的知识,不过在这里还是以jjvm的对线程支持为主。


先总结几个基本的概念,之所以总结这几个概念,是因为在都线程的编写中,这些概念是考量多线程程序的重要指标。


性能:这个词在计算机领域用的很广泛,时常常要根据context来判断的,因为本篇是对线程的总结,使用这里的context就是线程,我给出我自己对它的理解,性能是“用来评测执行某一任务的所用的时间,也就是等待时间(指完成一个给定任务所花费的时间)”


可伸缩性:指的是一个应用程序在工作负载和可用处理资源增加时其吞吐量的表现情况。一个可伸缩的程序能够通过使用更多的处理器、内存或者I/O带宽来相应地处理更大的工作负载。


可伸缩性瓶颈:锁住某个共享的资源以获得对其独占式的访问,这种方式使其他线程不能访问共享资源,即使有空闲的处理器可以调用其他线程也不会对完成工作负载作出贡献。为了取得好可伸缩性,必须消除或者减少我们对独占式资源锁的依赖。




多线程的原则:


1.对共享资源严重的争用(多个线程对同一资源的使用),对等待时间和可伸缩性都不利。如何处理对共享资源的争用,是编写多线程程序的难点所在。

2.要使用多处理器系统的功能,通常需要使用多线程构造应用程序。但是要获得好的硬件利用
率,只是简单地在多个线程中分割工作是不够的,还必须确保线程确实大部分时间都在工作,而不是在等待更多的工作,或等待锁定共享数据结构。

你可能感兴趣的:(java,多线程,数据结构,工作)