多线程基础
来源:互联网 发布:房子平面设计软件手机 编辑:程序博客网 时间:2024/06/05 09:11
线程和进程概念
1> 一个任务通常就是一个程序,每个运行中的程序就是一个进程。
当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。
多线程是扩展了多进程的概念,使得同一个进程可以同时并发处理多个任务。
一个进程可以拥有多个线程,一个线程必须有一个父进程。
2> 线程是独立运行的,它并不知道进程中是否还有其他线程存在。线程的执行时抢占式的,也就是说,当前运行的线程在任何时候都可能被挂起,以便让另外一个线程可以运行。
3> 当操作系统创建一个进程时,必须为该进程分配独立的内存空间,并分配大量的相关资源,并且多个进程之间不能共享内存;但创建一个线程则简单的多。同一个线程中的进程都有共性------共享一个进程虚拟空间。线程共享的环境包括:进程代码段、进程的公有数据。
线程的创建方式
1> 继承Thread类创建线程
继承Thread,并重新run()方法,可以通过Thread.currentThread()方法获取当前正在运行的线程对象, 这种方式可以直接调用getName()方法获取线程名。
2>实现Runnable接口创建线程类
实现Runnable接口,并重写接口的run()方法,创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象。
示例:new Thread(new Runnable()); new Thread(new Runnable(),"新线程");
值得一提的是,实现Runnable接口时,获取当前线程名,必须使用Thread.currentThread().getName();
阅读全文
0 0
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 3.4 HTTP 状态码
- 项目上传到linux上连接数据库失败
- gensim导入问题
- HDU 5988 最小费用最大流
- 带属性的自定义标签
- 多线程基础
- 数据库之SQL语句表记录篇
- Emacs单实例快速启动
- Spring的5中配置方法
- 使用JAVA开发高并发网站
- 子串总长度 sam
- php redis 操作 字符串(wss2.0)
- elasticsearch增删改语句模板
- 集群中的分布式发布订阅