Java多线程(一)

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接口来定义一个线程类。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 进程和线程 进程 所有运行中的任务通常对应一个进程,当一个程序进入内存运行时,即变成一个进程.进程是处于运行过程中...
    小徐andorid阅读 7,866评论 3 53
  • Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和...
    Java小辰阅读 10,177评论 5 209
  • 今天的阳光太好了 坐了漫长的竹筏 爬了陡峭的天游峰 高速公路上狂钻山洞狂超车 累得够呛 黄鱼肚子也算得走路吃力 除...
    Hirune阅读 1,729评论 0 0
  • 如果你认为如同中国高考一样成绩决定一切,拥有傲人的SAT成绩和绩点4.0就可以进入美国顶尖名校?那我想说,还是别浪...
    Andy老师阅读 1,612评论 0 0
  • 最近公司出新需求,要给视频流加滤镜,考虑到使用GPUImage会影响到我们现有的人脸识别、人脸追踪功能,我们选择在...
    Owl_City_Gx阅读 5,054评论 0 3

友情链接更多精彩内容