java线程

时间 2019/6/12 22:22:46 加载中...

什么时候需要多线程?

当需要提高程序的反应速度时,可以使用多线程。
举一个业务场景:

在用户注册的时候,在用户填完基本信息后,点击注册按钮。
程序需要
1、在用户表新增一条记录
2、初始化用户角色权限
3、发送注册认证邮件
4、初始化默认数据

意思就是,用户注册设计到很多业务逻辑,出现的问题就是:注册很慢,点击注册需要反应很长时间

在这业务里面,其中的第3步和第4步我们就可以放到 子线程 去做,因为子线程不会阻塞主线程,所以
反应速度就会提上去了。

线程的创建

先了解下线程的创建方法

创建方法一

声明实现 Runnable 接口的类。即 java.lang.Runnable 接口

例子

  1. public class MyWorkThread implements Runnable {
  2. private String name;
  3. public MyWorkThread(String name){
  4. this.name = name;
  5. }
  6. @Override
  7. public void run() {
  8. System.out.println(this.name+"开始干活了...");
  9. try {
  10. //模拟业务耗时
  11. Thread.sleep(2000);
  12. } catch (InterruptedException e) {
  13. e.printStackTrace();
  14. }
  15. System.out.println(this.name+"干完活了...");
  16. }
  17. }

声明一个线程后,然后再调用

  1. Thread thread2 = new Thread(new MyWorkThread("name2"));
  2. thread2.start();
  3. System.out.println("主线程接着走...");

创建方法二:

使用匿名类

  1. Thread oneThread = new Thread(new Runnable() {
  2. @Override
  3. public void run() {
  4. System.out.println("开始干活了...");
  5. try {
  6. //模拟业务耗时
  7. Thread.sleep(2000);
  8. } catch (InterruptedException e) {
  9. e.printStackTrace();
  10. }
  11. System.out.println("干完活了...");
  12. }
  13. });
  14. oneThread.start();

使用匿名类的好处就是可以不声明一个线程类,而是直接使用。

扫码分享
版权说明
作者:SQBER
文章来源:http://www.sqber.com/articles/java-thread.html
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。