美文网首页
Java多线程(一)

Java多线程(一)

作者: RacyFu | 来源:发表于2018-06-29 09:21 被阅读0次

    1、并发:不同任务占用不同资源运行,比如一个进程需要使用使用IO和CPU,那么使用这两个资源的线程可以分别运行。

         并行:线程同时执行,比如CPU有4核,就可以并行运行4个线程,减少上下文切换次数。

    2、多进程编程:Java类,ProcessBuilder、RunTime、Linux下创建多进程的开销远远小于Windows,所以现在的服务器大多基于Linux。

    3、Thread:对象可继承Thread来声明为一个线程类,类必须继承public void run() 来实现该线程要实现的功能,该类执行start()方法来启动一个线程。

    运行结果:

    每次运行的结果都不一定一样,注意main()方法作为第一个线程,beging thread make总是最先得到执行,然后执行线程类中的构造方发,如果线程类存在父类,则先执行父类构造方法在执行继承类构造方法,在执行run()方法。main()方法中for循环之后的代码不一定什么时候执行。

    代码第5行有一个静态变量,第6行有一个普通变量,在构造函数和run()方法中使用tNumber的原因是,在Java内存管理中静态变量和对象一样存储在堆中,供大家共享,所以即使新建一个线程(新建一个ThreadOne类),如果使用静态变量threadNumber代替tNumber在函数中,得到的结果就全是Thread 4(1).......Thread 4(3)........,使用普通变量,则基本变量和对象引用存储在属于该线程的栈中,独立属于该线程,所以能得到Thread 1() Thread 3()等。

    内部实现过程为:线程类调用start(),然后在调用run()。

    4、Runable:因为Java中extends只能继承一个类,所以可以使用Runable接口来定义一个线程类。

    相关文章

      网友评论

          本文标题:Java多线程(一)

          本文链接:https://www.haomeiwen.com/subject/hcmoyftx.html