近期工作中遇到了一些并发訪问的问题。所以研究了一下关于java并发编程的一些内容。分几篇博客给大家分享一下,关注这方面的朋友可以留言交流一下哈。那么这篇博客就闲扯一些关于并发和线程的内容。作为开篇吧。
我们都应该知道。编写正确的程序是非常难的,事实上编写正确的并发程序更加是难上加难。由于并发编程比串行编程有非常多更加easy出错的地方。
举个样例说的话,左手画圆,右手画方,两手同一时候操作和先左手后右手操作孰易孰难。非常显然易见的。
难,为什么还要用呢?我想这是个比較好的问题。由于凡是都要问个为什么,况且还比較困难的东西。用一定要知道它究竟给我们带来多大帮助。
我来说一说(可能不是非常对哦。希望指正哈),线程是java语言中不可或缺的重要功能。它可以使复杂的异步代码变得更加简单,从而极大的简化了复杂系统的开发。另外要充分发挥多处理器的强大计算能力,最简单的方式就是使用线程,处理器数量的增长,高效的使用并发变得越来越重要,所以需要用并发。
讨论难和要用的问题挺有趣的,话说利益的驱动下,在硬的骨头也要啃,才知道骨头的味道事实上比肉的味道更香。这就是为什么我们要用并发的原因。无论它有多难。
那么,事实上在早些时候计算机是没有操作系统的,那时候的编程是从头到尾执行,可以利用计算机中的全部资源。每次仅仅能执行一个程序,在那个时候的计算机颇为珍贵和稀有。十分感叹浪费是多么可怕的一件事情。
还好。我们赶上好时代了,操作系统出现可以让计算机每次执行多个程序,而且在每一个程序中有单独的进程执行。操作系统为每一个进程分配了各种资源。
这种话就行充分的利用资源。那么假设说早期浪费资源促使进程出现,那么浪费资源也促使了线程的出现。
线程同意在同一个进程中同一时候存在多个程序控制流,线程会共享进程中的资源。
在操作系统中,线程是主要的调度单位。没有协同机制的情况下,线程是彼此独立执行,这样有效的减少了程序的开发和维护成本。也可以提升复杂应用程序的性能,我比較看好第二点优点。
可是假设全部的线程都要訪问同样的变量的时候就会出现不可预測的后果。所以要想充分利用资源,实现并发,必需要用好线程。可是这个就是上文说道的难的问题。
这篇文章主要是闲扯了一些并发和线程的相关知识。后面的问题会陆续来解决难的问题。也就是假设使用好线程完毕并发编程。