Java初学有必要深入多线程编程么?Java 中 static 和 volatile 关键字的区别

时间:2017-12-13 05:00:01   浏览:次   点击:次   作者:   来源:   立即下载

初学Java是了解多线程就好,还是得深入理解多线程?是否有必要在初学阶段深入去考虑并发编程?学过计算机操作系统,但是又几乎没有什么概念。如果有必要深入理解 怎么入手比较好?

先入门,再深入。

入门的话可以看看我写的这么几个例子,希望对你有帮助:

在谈线程之前,先聊下进程!

进程:

是指正在运行的程序,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,是操作系统动态执行的①个基本单位;

多进程:

当操作系统只有单进程的时候,那么它只能做①件事,而当它有了多进程后,那么它可以做多件事情,比如“同时” 听歌,上网…

线程:

就是进程的基本单位,线程是依赖于进程而存在的,在进程中可以执行多任务,而这些任务就是线程,线程是程序使用cpu的基本单位!

为什么使用线程?

因为,使用线程提高了cpu的使用率,提高了程序的执行速度!

多线程的实现方式

①种是继承Thread重写run方法

public class ThreadDemo extends Thread {private int num = ⑤;@Overridepublic void run() {while(num > ⓪){System.out.println(this.getName()+\"----\"+num--);}}}//mainpublic class ThreadMain {public static void main(String[] args) {ThreadDemo td = new ThreadDemo();ThreadDemo td② = new ThreadDemo(); td.setName(\"thread one\"); td②.setName(\"thread two\"); td.start(); td②.start();}}//输出:thread one----⑤thread two----⑤thread one----④thread two----④thread one----③thread one----②thread two----③thread one----①thread two----②thread two----①

①种是实现Runnable接口重写run方法

public class RunnableDemo implements Runnable {private int num = ⑤;@Overridepublic void run() {while(num>⓪){System.out.println(Thread.currentThread().getName() + \"----\" + num--);}}}//测试类:public class MainDemo {public static void main(String[] args) {RunnableDemo rd = new RunnableDemo();Thread t = new Thread(rd); t.start();}}//输出结果:runnable thread----⑤runnable thread----④runnable thread----③runnable thread----②runnable thread----①

大多数情况下都是用实现Runnable的方式来实现多线程的,Thread的类其实也是实现了Runnable接口,实现Runnable的方式来实现多线程的好处是解决了单继承的局限性,而且它还可以使用相同的代码去处理同①资源!

THREAD的安全问题

什么原因会导致线程的安全问题呢?

首先来看个例子:

在①个周末的晚上,哆啦A梦邀请了胖虎,小静,大雄去帮他卖铜锣烧,他们③位分别摆起了地摊,而这时候哆啦A梦拿出了③⓪个铜锣烧希望他们①起卖完这③⓪个!

分析:为了提

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息