黑马程序员_java语言的多线程
2012-09-22 17:26
267 查看
------- android培训、java培训、期待与您交流!
----------
java是少数支持“多线程”的语言之一,他可以让不同程序块一起运行,已达到多任务处理的目的。
进程和线程的概念与联系:
进程的特征:1.一个进程就是一个执行中的程序,拥有一块独立的内存空间,一组系统资源。进程的内部数据和状态都是完全独立的。2.创建并执行一个进程的开销是很大的。3,进程是系统运行程序的基本单位
线程的特征:1.在java中,程序通过流控制来执行程序流,程序中单个顺序的流控制称为线程。2.多线程指的是在单个进程中可以同时运行多个不同的线程,执行不同的任务。他们的联系是二者都是一段完成某个特定功能的代码,不同的是同类的多个线程共享一块内存空间和一组系统资源,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。一个进程可以包含多个线程。创建线程可以通过继承Thread类,也可以通过实现Runnable接口来实现。
public class ThreadDemo
{
public static void main(String[] args){
new TestThread().start();
for(int i=0;i<10;i++){
System.out.println("main 多线程在运行");
}
}
}
class TestThread extends Thread
{
public void run(){
for(int i=0;i<10;i++){
System.out.println(TestThread在运行);
}
}
}
下面通过实现Runnable接口来创建
public class Threaddemo1
{
public static void main(String[] args){
TestThread t=new TestThread();
new Thread(t).start();
for(int i=0;i<10;i++){
System.out.println("main线程在运行");
}
}
}
class TestThread implements Runnable
{
public void run(){
for(int i<10;i++){
System.out.println("TestThread 在运行");
}
}
}
两种方法中,实现Runnable接口有几个显著的优势
1.适合多个程序代码的线程去处理同一资源情况2.可以避免由于java单继承带来的局限性3.增强了程序的健壮性。代码可以被多个线程共享,代码与数据是独立的
线程的状态分为:创建,就绪,运行,阻塞,终止。
关于线程的操作,可以去查API,它是很不多的学习工具。
关于后台线程的编写
public class ThreadDaemon
{
public static void main(String[] args){
ThreadTest test=new ThreadTest();
Thread t=new Thread(test);
t.setDaemon();
t.start();
}
}
class ThreadTest implements Runnable
{
public void run(){
while(true){
System.out.println(Thread.currentThread().getName+"is running");
}
}
}
线程有时为了实现同步,使用synchronized(对象){
需要同步的代码;
}
也可以使用同步方法
访问控制符 synchronized 返回值类型 方法名称(参数)
线程间的通信可以通过调用Object类的wait notify notifyAll等方法来实现
其实关于线程知识就只有这么一点,主要是你怎么去融会贯通,巧妙地应用它。
------- android培训、java培训、期待与您交流!
----------
----------
java是少数支持“多线程”的语言之一,他可以让不同程序块一起运行,已达到多任务处理的目的。
进程和线程的概念与联系:
进程的特征:1.一个进程就是一个执行中的程序,拥有一块独立的内存空间,一组系统资源。进程的内部数据和状态都是完全独立的。2.创建并执行一个进程的开销是很大的。3,进程是系统运行程序的基本单位
线程的特征:1.在java中,程序通过流控制来执行程序流,程序中单个顺序的流控制称为线程。2.多线程指的是在单个进程中可以同时运行多个不同的线程,执行不同的任务。他们的联系是二者都是一段完成某个特定功能的代码,不同的是同类的多个线程共享一块内存空间和一组系统资源,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。一个进程可以包含多个线程。创建线程可以通过继承Thread类,也可以通过实现Runnable接口来实现。
public class ThreadDemo
{
public static void main(String[] args){
new TestThread().start();
for(int i=0;i<10;i++){
System.out.println("main 多线程在运行");
}
}
}
class TestThread extends Thread
{
public void run(){
for(int i=0;i<10;i++){
System.out.println(TestThread在运行);
}
}
}
下面通过实现Runnable接口来创建
public class Threaddemo1
{
public static void main(String[] args){
TestThread t=new TestThread();
new Thread(t).start();
for(int i=0;i<10;i++){
System.out.println("main线程在运行");
}
}
}
class TestThread implements Runnable
{
public void run(){
for(int i<10;i++){
System.out.println("TestThread 在运行");
}
}
}
两种方法中,实现Runnable接口有几个显著的优势
1.适合多个程序代码的线程去处理同一资源情况2.可以避免由于java单继承带来的局限性3.增强了程序的健壮性。代码可以被多个线程共享,代码与数据是独立的
线程的状态分为:创建,就绪,运行,阻塞,终止。
关于线程的操作,可以去查API,它是很不多的学习工具。
关于后台线程的编写
public class ThreadDaemon
{
public static void main(String[] args){
ThreadTest test=new ThreadTest();
Thread t=new Thread(test);
t.setDaemon();
t.start();
}
}
class ThreadTest implements Runnable
{
public void run(){
while(true){
System.out.println(Thread.currentThread().getName+"is running");
}
}
}
线程有时为了实现同步,使用synchronized(对象){
需要同步的代码;
}
也可以使用同步方法
访问控制符 synchronized 返回值类型 方法名称(参数)
线程间的通信可以通过调用Object类的wait notify notifyAll等方法来实现
其实关于线程知识就只有这么一点,主要是你怎么去融会贯通,巧妙地应用它。
------- android培训、java培训、期待与您交流!
----------
相关文章推荐
- 黑马程序员_Java语言_多线程及GUI
- [黑马程序员]--Java语言基础-多线程
- 黑马程序员-Java语言基础– 多线程 第12天
- 黑马程序员——Java语言基础——04.多线程(1)多线程概念
- 黑马程序员_java语言_多线程和设计模式
- 黑马程序员——Java语言基础——04.多线程(2)线程间通信
- 黑马程序员——Java语言基础:多线程
- 黑马程序员_java语言_多线程
- 黑马程序员——Java语言--多线程
- 黑马程序员_Java语言_多线程
- 黑马程序员-Java语言基础– 多线程 第11天
- 黑马程序员——java语言入门
- 黑马程序员--读写字节数组,随机读写流,集合IO的思维导图,多线程部分,单例设计模式,线程和进程的概念,Java中的线程的创建方式,线程的随机性,线程的状态图,多线程操作共享数据的安全性,死锁
- 黑马程序员---java基础多线程
- 黑马程序员——java语言基础知识回顾(二)
- 黑马程序员——Java基础---多线程
- 黑马程序员_java语言基础
- 黑马程序员——java语言基本组成1
- 黑马程序员自学笔记 Java基础<五>---> 多线程
- 黑马程序员_java 多线程笔记