随着自己的对java的基础部分一点一点的理解,多线程中的问题有了一定的理解。
在计算机中,我们知道有很多的进程。首先我们要强调的是进程不是线程。这完全是两个概念。当然这样的说法单纯的对java语言而说的,对于其他的语言和系统的是否使用我并不知道。
java中线程有两种方法可是实现,一个是直接继承Thread,并重写run方法。但是这样的实现我们要特别注意,java的是单继承关系的。而多线程往往都要共用一个数据源的。这样的实现方式来操作同一个数据源是有一些问题的。所以,在多线程中使用同一个数据源的时候我们要用另一种方式来实现就是实现runnable接口,这样的方式不仅仅符合aop方面编程的特点,也符合我们面向接口编程的习惯。更加符合在多线程中共用同一数据源的时候。
在多线程的时候,cpu在同一个特定的时间内只能执行一个线程中的run方法中的代码。然后下一时间又去执行另一个线程中的代码。这样的方式,我们是没有办法来控制cpu的。所以,在共用同一个数据源的时候,就会有很多的问题。这里面java引入了监视器synchronized关键字。来保证在统一数据源中多线程统一性和完整性。下面的代码就是个小例子。
然后我们来够着共同的数据源Q(我们要注意的面向对象中谁拥有数据,谁就要对外提供数据的操作方法)
测试