• 一:理解多线程
    多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。
    多个线程的执行是并发的,也就是在逻辑上“同时”,而不管是否是物理上的“同时”。如果系统只有一个CPU,那么真正的“同时”是不可能的,但是由于CPU的速度非常快,用户感觉不到其中的区别,因此我们也不用关心它,只需要设想各个线程是同时执行即可。
    多线程和传统的单线程在程序设计上最大的区别在于,由于各个线程的控制流彼此独立,使得各个线程之间的代码是乱序执行的,由此带来的线程调度,同步等问题,将在以后探讨。

    二:在Java中实现多线程
    我们不妨设想,为了创建一个新的线程,我们需...

  • 1.Java没有全局变量;
    2.Java 的线程之间的通信比较差,C++提供了多种通信方式;
    3.Java的数据同步是通过synchronized来实现,但是基本上等于交给了虚拟机来完成,
    而C++有很多种:临界区、互斥体等。
    4. Java的多线程run方法没有返回值,因此如何能得到子线程的反馈信息,确实令人头疼。
    5.Java的多线程是协作式,这样等于操作系统放弃了对线程的控制;

    这里谈谈我在java多线程中的编写经验:
    1.创建thread时,将主控类或者叫做调用类传入构造函数中,例如:
     Class A调用Class B,Class A作为Class B构造函数的参数。
    这样再创建一个子线程时,用同样的方式实现,这样主控类的实例变量就可以作为
    全局变量,当然要注意同步。

    2. 类同步中wait(),notify()一定要考虑好逻辑,不然有可能造成阻塞。

    3. 如果多个线程调用或者目前不是很清楚有多少个线程进行通信,最好的办法是
    自己实现...