<pre name="code" class="html">------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
进程概述及多进程的意义
进程:可以简单理解就是电脑上安装的一个软件。
进程与线程之间是存在关系的:线程是进程的一个单元片段。(一个进程是由多个线程组成的。)
多进程:在电脑上一次可以运行多个程序。这些程序每一个都可以理解成是一个进程。
对于我们的电脑,它们一般都是多进程的,可以增加用户感受。
线程概述及多线程的意义
线程是程序运行的一个路径,多线程存在的目的为了提高程序的运行效率。
线程与线程之间 是否可以通信?
可以
进程与进程之间 是否可以通信?
不能通信。
在实际开发中,哪些地方使用到了多线程?
Web程序它本身就是多线程的。
在以后开发中会涉及到数据对导。可以使用多线程操作。
多线程举例及并行和并发的区别
并行:在同一时间执行多个操作
是在同一个时间段内执行操作,它也可以按顺序排列。
并发:在同一时间点执行多个操作
是在同一时间点上执行操作,会存在一些数据安全问题.
并行:两个人给两个孩子一起喂奶,
并发:一个人给两个孩子喂奶
Java程序 运行原理 和JVM的启动是多线程的吗
JVM是不是一个进程。
我们所写的程序,可以理解成是一个线程。
它是在JVM中运行,是一个单元片段。
Java可以调用c程来完成对硬件的访问。也就是说,我们的多线程程序,会占用cpu时间片是通过底层调用c,c++程序来完成的。而我们真实使用时,其实已经将这些屏蔽。
问题:JVM启动是多线程的吗?
是,当我们的一个程序运行时,可以理解成是一个线程在执行。
而这时,jvm会不定时的开启另外一个守护线程,jvm垃圾回收,它也是一个线程,
所以我们说,jvm启动是多线程的。
如何实现多线程及多线程方式
在java中有一个类 Thread类,它是java.lang包下的。它就是线程类.
题:java中创建线程有几种方式?
1.继承Thread类
2.实现Runnable接口
介绍关于继承的这种方式:
继承Thread类创建线程方式步骤:
1. 创建一个类继承Thread。
2. 重写run方法
3. 创建这个类的实例,调用start方法启动线程。
<span style="font-size:12px;">package cn.itcast.thread;
//第一种方式实现多线程 extends Thread类.
public class ThreadDemo1 {
public static void main(String[] args) {
MyThread1 mt1 = new MyThread1(); // 创建一个实例
mt1.start();// 调用start方法,开启线程
}
}
// 1.定义一个类,继承Thread
class MyThread1 extends Thread {
// 2.重写run方法
@Override
public void run() {
System.out.println("一个线程线程执行");
}
}
</span>
多线程方式2的思路及代码实现
实现Runnable接口方式来创建线程步骤;
1. 创建一个类,实现Runnable接口
2. 重写接口中的run方法。
3. 创建一个Thread对象,将我们自定义的类的对象做为Thread类的构造方法的参数传递。
4. 通过Thread类的start方法开启线程,这时调用 的是其构造方法中传递的实现的Runnable接口的类中的run方法。
package cn.itcast.runnable;
//关于实现Runnable接口创建线程的方式
public class RunnableDemo1 {
public static void main(String[] args) {
// 3.创建一个Thread对象,将我们自定义的类的对象做为Thread类的构造方法的参数传递。
MyThread1 mt = new MyThread1();
Thread th = new Thread(mt);
// 4.通过Thread类的start方法开启线程,这时调用 的是其构造方法中传递的实现的Runnable接口的类中的run方法
th.start();
}
}
// 1. 创建一个类,实现Runnable接口
class MyThread1 implements Runnable {
// 2. 重写接口中的run方法。
@Override
public void run() {
System.out.println("子线程执行");
}
}
多线程两种方式的比较及区别
问题:我们在开发中使用哪种方式?
使用实现Runnable接口的方式.
原因:
1.扩展性
实现接口可以实现多个。
继承只能继承一个。(java中是单继承)
2.关于数据的使用问题