进程、线程、多线程、并发与并行、线程运行内存模型、锁

进程、线程、多线程、并发与并行、线程运行内存模型、锁

1.1我们为什么需要多线程?
比如我们在听歌时可以一边听一边下载,这种一个程序看起来同时做好几件事的情况,就需要多线程。

线程(Thread)和进程(Process)的关系很紧密,进程和线程是两个不同的概念,进程的范围大于线程。通俗地说,进程就是一个程序,线程是这个程序能够同时做的各件事情。比如,媒体播放机运行时就是一个进程,而媒体播放机同时做的下载文件和播放歌曲,就是两个线程。因此,可以说进程包含线程。

线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所有的全部资源。一个进程中是可以拥有很多线程的。

1.2实现多线程的方法

实现多线程有很多方法:Thread 继承 、Runnable 接口实现 、Callable 接口实现(带返回值) 、线程池(提供线程)。
我们要讲的就是其中的两种: Thread 继承 、Runnable 接口实现

1.2.1继承Thread 类开发多线程

我们可以用多线程来解决“程序看起来同时做好几件事情”的效果,只需要将各个文件传送的工作分别写在线程里即可。

继承 Thread 类实现多线程,该方法步骤如下:
、编写一个类,继承 java.lang.Thread
、在这个类中,重写 java.lang.Thread 类中的以下函数:
public void run()

class FileTransThread extends Thread{
   
      private String fileName;
      public FileTransThread(String fileName){
    
          this.fileName = fileName;
      }
      public void run(){
   
          System.out.println("传送" + fileName); 
             try{
   
                Thread.sleep(1000 * 10);
                }
                catch(Exception ex){
   }
                System.out.println(fileName + "传送完毕");
      }
 }

线程编写完毕

、实例化线程对象,调用其 **start()**函数来启动该线程。

FileTransThread ft1 = new FileTransThread(“文件 1);
ft1.start();

1.2.2实现Runnable 接口开发多线程

该方法实现步骤如下:
、编写一个类,实现 java.lang.Runnable 接口
、在这个类中,重写 java.lang. Runnable 接口中的以下函数:
public void run()
将线程需要执行的代码放入run方法。

class FileTransRunnable implements Runnable{
    
      private String fileName ;
      public FileTransRunnable(String fileName){
    
          this.fileName = fileName ;
      }
      public void run(){
   
          System.out.println("传送" + fileName); 
          try{
   
               Thread.sleep(1000 * 10);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值