Java基础-多线程编程
2016-08-27 12:14
197 查看
1、概念
进程:正在执行的程序。
线程:程序内部的一次执行过程。
需要注意的是:在一个进程中至少包含一个线程。
2、实现线程的两种方式
第一种(不常用):继承Thread类,并重写其中的run()方法。
注意:此种方法中,需要多线程执行的代码放在run()方法中,而需要多线程执行该代码时,需要调用start()方法。线程内部会自执行run()方法中的代码。
第二种(常用) :实现Runable借口,并重写其中的run()方法。
注意:此种方法并没有局限子类的定义,因为实现接口,不需要满足is a 的关系。但是,需要将实现了Runable接口的类的实例作为参数传入Thread的构造方法,并通过start()方法启动该Thread的实例。
3、线程同步问题
synchronized(this){
需要同步的代码块。。。
}
首先我们说一下同步问题的来源。当多个线程访问同一个资源时,可能会出现错误。所以我们将该资源上锁,只有拿到锁的的线程才可以访问该资源。此处资源包括很多(对象,类)。。需要注意的是,线程间通信无非就是通过锁的得与失,来控制究竟哪一个线程来访问这一个资源。同时,只有在synchronize包括的范围内才可以出现wait()、notify()、notifyAll()这三个方法,原因同上,这三个方法恰恰是Object的方法.
进程:正在执行的程序。
线程:程序内部的一次执行过程。
需要注意的是:在一个进程中至少包含一个线程。
2、实现线程的两种方式
第一种(不常用):继承Thread类,并重写其中的run()方法。
注意:此种方法中,需要多线程执行的代码放在run()方法中,而需要多线程执行该代码时,需要调用start()方法。线程内部会自执行run()方法中的代码。
第二种(常用) :实现Runable借口,并重写其中的run()方法。
注意:此种方法并没有局限子类的定义,因为实现接口,不需要满足is a 的关系。但是,需要将实现了Runable接口的类的实例作为参数传入Thread的构造方法,并通过start()方法启动该Thread的实例。
3、线程同步问题
synchronized(this){
需要同步的代码块。。。
}
首先我们说一下同步问题的来源。当多个线程访问同一个资源时,可能会出现错误。所以我们将该资源上锁,只有拿到锁的的线程才可以访问该资源。此处资源包括很多(对象,类)。。需要注意的是,线程间通信无非就是通过锁的得与失,来控制究竟哪一个线程来访问这一个资源。同时,只有在synchronize包括的范围内才可以出现wait()、notify()、notifyAll()这三个方法,原因同上,这三个方法恰恰是Object的方法.
相关文章推荐
- 浅析Java多线程程序设计机制-Java基础-Java-编程开发
- 如何使用Java编写多线程程序-Java基础-Java-编程开发
- java多线程基础学习-核心编程
- java学习笔记14--多线程编程基础1
- Java多线程编程总结笔记——02多线程基础知识
- 实战体会Java的多线程编程-Java基础-Java-编程开发
- java多线程编程基础
- java学习笔记14--多线程编程基础1
- JAVA 多线程编程之一(基础)
- Java基础知识强化之网络编程笔记14:TCP之多个客户端上传到一个服务器的思考(多线程改进)
- Java多线程编程总结笔记——一多线程基础知识
- Java多线程编程基础之线程对象
- 【 Java多线程】编程基础之线程对象
- java学习笔记15--多线程编程基础2
- Java多线程编程基础
- Java多线程程序设计入门-Java基础-Java-编程开发
- java速度入五._多线程编程基础
- Java多线程编程总结笔记——一多线程基础知识
- Java基础-多线程下载(网络编程-多线程)
- Java多线程编程基础之线程对象