标签:Java Thread 创建 基础 线程 println 多线程 public
Java_多线程基础(一)
(一)线程与进程
(二)为什么要使用多线程?
(三)多线程使用中的注意事项
(四)多线程的常用创建方式
(一)线程与进程
什么是进程?
每个正在系统上运行的程序都是一个进程,每个进程包含一到多个线程,其中必定有一个主线程。
什么是线程?
线程是一组指令的集合,是一条独立的运行线路,它可以在程序里独立执行。
一条线程的死亡不影响其它线程的运行。
总结:
进程是所有线程的集合,每一个线程是进程中的一条执行路径。
(二)为什么要使用多线程?
多线程的好处是高程序的效率。
(三)多线程使用中的注意事项
使用继承Thread类还是使用实现Runnable接口好?
使用实现实现Runnable接口好,原因实现了接口还可以继续继承,继承了类不能再继承。
启动线程是使用调用start方法还是run方法?
开始执行线程 注意 开启线程不是调用run方法,而是start方法
调用run知识使用实例调用方法。
(四)多线程的常用创建方式
1)通过继承Thread类重写Run方法创建多线程
首先:创建一个继承了Thread类的子类,再在子类中重写Run()方法;
代码如下:
public class CreateThread extends Thread {
// run方法中 编写 多线程 需要执行的代码
public void run() {
for (inti = 0; i< 10; i++) {
System.out.println("i:" + i);
}
}
}
然后:在main方法中通过new一个子类的实体来创建一个线程,并调用start()方法来实现多线程;
代码如下:
public class ThreadDemo {
public static void main(String[] args) {
System.out.println("-----多线程创建开始-----");
// 1.创建一个线程
CreateThread createThread = new CreateThread();
// 2.开始执行线程 注意 开启线程不是调用run方法,而是start方法
System.out.println("-----多线程创建启动-----");r
createThread.start();
System.out.println("-----多线程创建结束-----");
}
}
2)通过实现Runable接口创建多线程
首先:创建一个实现 Runnable接口的实现类;
代码如下:
public class CreateRunnable implements Runnable {
@Override
// run方法中 编写 多线程 需要执行的代码
public void run() {
for (inti = 0; i< 10; i++) {
System.out.println("i:" + i);
}
}
}
然后:在main方法中通过new一个实现类的对象来创建一个线程,同时new一个Thread类的对象 ,并将实体类对象作为参数传递给Thread类,最后通过使用Thread对象调用start()方法来实现多线程;
代码如下:
public class ThreadDemo2 {
public static void main(String[] args) {
System.out.println("-----多线程创建开始-----");
// 1.创建一个线程
CreateRunnable createThread = new CreateRunnable();
// 2.开始执行线程 注意 开启线程不是调用run方法,而是start方法
System.out.println("-----多线程创建启动-----");
Thread thread = new Thread(createThread);
thread.start();
System.out.println("-----多线程创建结束-----");
}
}
3)使用匿名内部类创建多线程
概念:匿名内部类就是没有名字的内部类。这是Java为了方便我们编写程序而设计的一个机制。因为有时候有的内部类只需要创建一个它的对象就可以了,以后再不会用到这个类,这时候使用匿名内部类就比较合适,而且也免去了给它取名字的烦恼。
如果满足下面的一些条件,使用匿名内部类是比较合适的:
·只用到类的一个实例。
·类在定义后马上用到。
·类非常小(SUN推荐是在4行代码以下)
·给类命名并不会导致你的代码更容易被理解。
在使用匿名内部类时,要记住以下几个原则:
·匿名内部类不能有构造方法。
·匿名内部类不能定义任何静态成员、方法和类。
·匿名内部类不能是public,protected,private,static。
·只能创建匿名内部类的一个实例。
·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效
用匿名内部类创建多线程有两种方式,和创建一个线程是一样的。
①:继承Thread:
代码如下:
public class Test{
public static void main(String[] args) {
System.out.println("-----多线程创建开始-----");
new Thread(new Runnable() {
public void run() {
//do something
}
}).start();
System.out.println("-----多线程创建结束-----");
}
}
②:实现 Runnable接口:
代码如下:
public class Test{
public static void main(String[] args) {
System.out.println("-----多线程创建开始-----");
new Thread(new Runnable() {
public void run() {
//do something
};
}) { }.start();
System.out.println("-----多线程创建结束-----");
}
}
标签:Java,Thread,创建,基础,线程,println,多线程,public 来源: https://www.cnblogs.com/lys-song/p/12168744.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。