每个线程都是独立的,因此线程中每一个方法的局部变量都是和其他线程隔离开的。这些局部变量是完全私有的,因此对于线程而言,是没有办法去访问其他线程的局部变量的。如果两个线程都去调用同一个方法,则每个线程得到一个单独的此方法的局部变量拷贝。这就如同两个运行的文本编辑器都有一份独立的局部变量一样。
java没有异步行为的概念,这正是线程对于java而言如此重要的重要原因。这就意味着在其他语言中使用的许多处理异步的编程枝术都不可能在java中使用。实际上,你必须学习线程技术来处理这些异步的行为。
在快速的本地网络中,这是很少发生的。但是如果在Internet进行套接字编程,数据积压发生的机会就会增加,因此试图将数据写入网络时程序被阻寒的机会也会同时增加.、所以在Java中,你可能需要用两个线程来处理套接字,一个从套接字读取数据,一个向套接字写入数据。
并行算法
随着可以同时使川多个处理器的虚拟机的出现,Java成为厂一个有用的开发井行程序的平台。通过将循环中的一个迭代放在一个处理器上而将另外一个迭代放在另外一个处理器上,可以将任何包含循环的程序并行化。但是循环中迭代之间数据的依赖关系可能使得这个循环不能被并-行化,当然还有其他的原因可能使得这个循环不能被并行化。但是对于很多程序来说、当在多处理器的机器上运行时对那些占有较多的循环进行并行化处理会极大地提高程序的运行速度。