多线程(完+总)

线程

什么叫做进程

进程是程序在某个数据集上的执行

进程是个动态的实体

线程是一个程序里的不同执行的路径

 ​
 package testthread;
 class A extends Thread{
      public void run(){
         while(true){
            System.out.printf("AAAA!\n");
         }
     }
 }
 public class Testthread {
 ​
     /**
      * @param args the command line arguments
      */
     public static void main(String[] args) {
         // TODO code application logic here
         A aa = new A();
         aa.start();//aa.strat会自动调用run方法 开辟一个新的线程
         while(true){
            System.out.printf("BBBB!\n");
         }
     }
     
 }
 ​

多线程的优势:

  • 多线程编程简单,效率高(能直接共享数据和资源,多进程不能)

  • 适合于开发服务程序(web服务,聊天服务等)

    创建一个线程的第一种方法

    1. 创建一个继承Thread的类(假定类名为A),并重写Thread中的run方法

    2. 构造一个A类对象,假定对象名为aa

    3. 调用aa的start方法【start方法是从thread继承过来的】

    注意问题

    • Thread中start()方法的功能就是创造一个新的线程,并自动调用该线程的run()方法,直接调用run()方法是不会创造一个新线程的

    • 执行一个线程实际就是执行该线程run方法中的代码

    • 执行完aa.start();后并不表示aa所对应的线程就一定会立即得到执行,aa.start();执行完以后只是代表aa线程具有了可以立即被CPU执行的资格,但由于想抢占CPU执行的线程很多,cpu并不一定会立即执行aa所代表的线程

    • 一个Thraed对象能且只能代表一个线程

    • 一个Thraed对象不能调用两次start方法,否则会抛出异常

      创建新线程的第二种方法

    • 定义一个实现了Runnable接口的类,假定为A

    • 创建A类对象aa,代码如下:

    •              A aa = new A();
    • 利用aa构造一个Thread对象tt

    • Thread tt = new Thread(aa);

    • 调用tt中的start()方法

      tt.start();//自动调用的是aa里面的run()方法

       package bitter.xc.day.pkg1;
       class A implements Runnable{
           public void run(){
               while(true){
                   System.out.printf("AAAA!\n");
               }
           }
       }
       public class BitterDay1 {
       ​
           public static void main(String[] args) {
               A aa = new A();
               //aa.run();
               //aa.start();error
               Thread t = new Thread(aa);//public Thread(Runnable r);
               t.start();
               
               while(true){
                   System.out.printf("BBBB\n");
               
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值