Java多线程&输入输出流&网络(5.27)

1.java多线程
  [1]进程:每个进程都有独立的代码和数据空间,进程间的切换会有较大的开销
           一个进程包含1-n个线程
  [2]线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器,
           线程间的切换开销小。
     多进程是指操作系统同时运行多个任务(程序)

     多线程是指同一个程序中有多个顺序流在属性

package com;

public class DownloadThread extends Thread {
	@Override
	public void run() {
		// TODO Auto-generated method stub
		//下载顺序流
		while(true){
			System.out.println("下载");
			
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}
package com;

public class MusicThread extends Thread {
	
	//子线程体
	@Override
	public void run() {
		// TODO Auto-generated method stub
		//听歌的顺序流
		while(true)
		{
			System.out.println("听歌");
			
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}
package com;

public class Test {

	//主线程
	//主线程体
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		MusicThread musicThread = new MusicThread();
		DownloadThread downLoadThread = new DownloadThread();
		
		//开启两个子线程
		//开启听歌线程,执行run方法中的代码
		musicThread.start();
		//开启下载线程,执行run方法中的代码
		downLoadThread.start();
		
		//线程抢占cpu,谁抢到cpu,谁执行代码
	}
}
  [3]开启线程的两种方式

     继承Thread类

     实现Runnable接口 -------常用

package ppt;

public class MyRunnable implements Runnable {

	//该方法被线程体调用
	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("子线程运行中...");
	}
}
package ppt;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//第二种开启线程的方式
		Thread thread = new Thread(new MyRunnable());
		thread.start();
	}
}
   [4]线程六种状态

     创建线程对象 new
     准备状态     runnable   用户调用start方法线程进入准备状态
     运行         running    执行线程体代码
     结束         teminated  线程体内的代码执行完毕
     等待         sleep, wait/notify

     阻塞         等待键盘输入,服务器等待客户端连接

package ppt03;

public class MyRunnable implements Runnable {

	boolean isRun = true;
	
	@Override
	public void run() {
		// TODO Auto-generated method stub
		while(isRun)
		{
			System.out.println(Thread.currentThread().getName());
			
			try {
				Thread.sleep(5000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}
package ppt03;

import java.util.Scanner;

public class Test {

	publ
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值