博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程(1)—单线程
阅读量:5164 次
发布时间:2019-06-13

本文共 1828 字,大约阅读时间需要 6 分钟。

  • 1.线程:
    • 线程时轻量级的进程
    • 线程没有独立的地址空间
    • 线程是有进程创建的(寄生在进程)
    • 一个进程可以拥有多个线程
  • 2.线程的状态:
    • 新建、
    • 就绪
    • 运行
    • 阻塞、
    • 死亡
  • 3.java中一个类要当作线程来使用有两种方法
    • 1.继承Thread类,并重写run函数
    • 2.实现Runnable接口,并重写run函数
  • 4.例子
/**1.使用方法一和方法二编写一个程序,该程序每隔一秒在控制台输出一个“HelloWorld”,输出十个就退出*/public class Test {
public static void main(String[] args) { Cat cat = new Cat(); cat.start();//方法一启动线程,此处没有调用run函数,也会运行此函数 Dog dog = new Dog(); //创建一个线程对象,方法二启动线程 Thread t = new Thread(dog); t.start(); //一个线程只能启动一次,否则会报错 //t.start();报错 //创建多个线程对象再运行就不会报错,但会涉及线程安全的问题 Thread t1 = new Thread(dog); Thread t2 = new Thread(dog); t1.start(); t2.start(); }}class Cat extends Thread{
int time = 0; //重写run函数 public void run(){ while(true){ // try { //线程休眠1000毫秒,进入到阻塞状态,并释放所占用的资源 Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //计数器 time++; System.out.println("方法一:HelloWorld "+time); //输出十次就退出 if(time == 10){ break; } } }}class Dog implements Runnable{
int time = 0; @Override public void run() { while(true){ // try { //线程休眠1000毫秒,进入到阻塞状态,并释放所占用的资源 Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //计数器 time++; System.out.println("方法二:HelloWorld "+time); //输出十次就退出 if(time == 10){ break; } } }}

转载于:https://www.cnblogs.com/tengpengfei/p/10454041.html

你可能感兴趣的文章
Linux 下源码编译安装 vim 8.1
查看>>
【C++】三大概念要分清--重载,隐藏(重定义,覆盖(重写)
查看>>
Condition原理以及使用
查看>>
[转]JQuery实现图片轮播效果
查看>>
记一次nginx部署yii2项目时502 bad gateway错误的排查
查看>>
算法-插入排序(Insertion sorting)
查看>>
python字典
查看>>
常用window命令
查看>>
Python命名空间和作用域
查看>>
前端效果——持续更新。。。
查看>>
开发和常用工具推荐清单
查看>>
(排序)快速排序QuickSort
查看>>
[asp.net]登录协同工作平台安全解决方式
查看>>
看到一篇很有意思的文章:在中国,电商赚钱的原因是穷人太多。
查看>>
WP7.1 应用程序发布到Marketplace
查看>>
04-Spring的注解开发
查看>>
微信小程序之登录态维护(十一)
查看>>
Linux卸载MySql——ubuntu版
查看>>
【转自心声】华为眼中管理者的18种惰怠行为
查看>>
云与备份之(1):VMware虚机备份和恢复
查看>>