使用多线程实现生产者和消费者问题使用多线程实现龟兔赛跑使用多线程实现多个用户安全存取一个账户本章目标点重点重点难第*页/共38页点重概述线程基础进程与线程线程分类多线程的优势线程控制线程的创建和启动线程的状态线程调度线程同步线程同步的必要性线程同步的实现死锁线程间通信线程间通信的必要性线程间通信的实现进程和线程2-1程序程序是一段静态的代码,它是应用程序执行的蓝本进程进程是指一种正在运行的程序,有自己的地址空间进程的特点动态性并发性独立性进程和线程2-2线程的定义进程内部的一个执行单元,它是程序中一个单一的顺序控制流程。如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为多线程线程的定义进程是系统资源分配的单位,可包括多个线程线程是独立调度和分派的基本单位,共享进程资源引入进程是为了多个程序并发执行,提高资源的利用率和系统吞吐量引入线程是为了减少程序在并发执行时付出的时空开销线程分类系统级线程(核心级线程):由操作系统内核进行管理,使用户程序可以创建、执行、撤销线程用户级线程管理过程全部由用户程序完成,操作系统内核只对进程进行管理多线程的优势多线程使系统空转时间减少,提高CPU利用率进程间不能共享内存,但线程之间共享内存非常容易使用多线程实现多任务并发比多进程的效率高Java语言内置多线程功能支持,简化了Java的多线程编程线程的创建和启动6-,并覆盖run(),并实现run()方法classMyThreadextendsThread{publicvoidrun(){/*覆盖该方法*/}}classMyThreadimplementsRunnable{publicvoidrun(){/*实现该方法*/}}线程的创建和启动6-2启动线程新建的线程不会自动开始运行,必须通过start()方法启动启动继承Thread的线程启动实现Runnable接口的线程MyThreadt=newMyThread();();MyThreadmt=newMyThread();Threadt=newThread(mt);();线程的创建和启动6-{ publicstaticvoidmain(Stringargs[]){ MyThread1t=newMyThread1(); (); while(true){ ("兔子领先了,别骄傲"); } }}classMyThread1extendsThread{ publicvoidrun(){ while(true){ ("乌龟领先了,加油"); } }}线程的创建和启动6-{ publicstaticvoidmain(Stringargs[]){ MyThread2mt=newMyThread2(); Threadt=newThread(mt); (); while(true){ ("兔子领先了,加油"); } }}classMyThread2implementsRunnable{ publicvoidrun(){ while(true){ ("乌龟超过了,再接再厉"); } }}
Java基础加强多线程课件 来自淘豆网m.daumloan.com转载请标明出处.