java 第56节 多线程应用

2016-07-01

package com.java1995;

public class MyRunnable1 implements Runnable{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        for(int i=0;i<100;i++){
            System.out.print("+");
        }

    }

}
package com.java1995;

public class MyRunnable2 implements Runnable{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        for(int i=0;i<100;i++)
            System.out.print("*");
    }

}
package com.java1995;

public class Test {

    public static void main(String[] args) {
        MyRunnable1 r1=new MyRunnable1();
        MyRunnable2 r2=new MyRunnable2();

        Thread t1=new Thread(r1);
        Thread t2=new Thread(r2);

        System.out.println("t1的优先级:"+ t1.getPriority());
        System.out.println("t2的优先级:"+t2.getPriority());

        //给t1设置最高的优先级
        t1.setPriority(Thread.MAX_PRIORITY);
        System.out.println("t1改变之后的优先级是:"+t1.getPriority());
        //给t2设置最低的优先级
        t2.setPriority(Thread.MIN_PRIORITY);
        System.out.println("t2改变之后的优先级是:"+t2.getPriority());

        t1.start();//就绪状态
        t2.start();//就绪状态
    }

}
时间: 2024-10-03 14:46:38

java 第56节 多线程应用的相关文章

Java高级特性 第7节 多线程

一.进程与线程的概念 1. 进程 进程是应用程序的执行实例,有独立的内存空间和系统资源. 如上图,标红色的是一个Office Word进程. 进程的特点: 动态性:进程是动态的创建和消亡: 并发性:操作系统利用时间片轮转或其他策略让多个应用程序交替执行: 独立性:所有的进程都是独立运行的,系统会分别为这些线程分配资源和实施调度 2.  线程 CPU调度和分派的基本单位,进程中执行运算的最小单位,可完成一个独立的顺序控制流程. 如上图迅雷可以创建多个下载任务(每个下载任务可看做是一个线程),多个下

Java基础】并发 - 多线程

Java基础]并发 - 多线程 分类: Java2014-05-03 23:56 275人阅读 评论(0) 收藏 举报 Java 目录(?)[+] 介绍 Java多线程 多线程任务执行 大多数并发应用程序时围绕执行任务(task)进行管理的:所谓任务就是抽象的,离散的工作单元. 围绕执行任务来管理应用程序时,第一步是要指明一个清晰的任务边界.大多数应用服务器程序都选择了下面这个自然的任务辩解:单独的客户请求: 任务时逻辑上的单元: 任务 Runnable 表示一个任务单元(java.lang)

【小白的java成长系列】——多线程初识(多人买票问题)

本来这节内容是要到后面来说的,因为最近在弄并发的问题,推荐一本书<java并发编程实战>,深入的讲解了多线程问题的.本人最近也刚好在看这本书,还不错的~ 多线程的相关概念,就不用说了的,自己可以去网上查找,有一大堆关于它的讲解~ 先来看看买票的程序: package me.javen.thread.one; public class TicketDemo { public static void main(String[] args) { // 使用Thread类的方式 // TicketTh

Java并发编程之多线程同步

线程安全就是防止某个对象或者值在多个线程中被修改而导致的数据不一致问题,因此我们就需要通过同步机制保证在同一时刻只有一个线程能够访问到该对象或数据,修改数据完毕之后,再将最新数据同步到主存中,使得其他线程都能够得到这个最新数据.下面我们就来了解Java一些基本的同步机制. Java提供了一种稍弱的同步机制即volatile变量,用来确保将变量的更新操作通知到其他线程.当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的.然而,在访问volatile变量时不会执行加锁操作

Java之旅--关于多线程

关于多线程的知识,有非常多的资料可以参考.这里稍微总结一下,以求加深记忆. 关于多线程在日常工作中的使用:对于大多数的日常应用系统,比如各种管理系统,可能根本不需要深入了解,仅仅知道Thread/Runnable就够了:如果是需要很多计算任务的系统,比如推荐系统中各种中间数据的计算,对多线程的使用就较为频繁,也需要进行一下稍微深入的研究. ThreadLocal与synchronized 区别ThreadLocal 与 synchronized ThreadLocal是一个线程隔离(或者说是线程

Java核心知识点学习----多线程中的阻塞队列,ArrayBlockingQueue介绍

1.什么是阻塞队列? 所谓队列,遵循的是先进先出原则(FIFO),阻塞队列,即是数据共享时,A在写数据时,B想读同一数据,那么就将发生阻塞了. 看一下线程的四种状态,首先是新创建一个线程,然后,通过start方法启动线程--->线程变为可运行可执行状态,然后通过数据产生共享,线程产生互斥---->线程状态变为阻塞状态---->阻塞状态想打开的话可以调用notify方法. 这里Java5中提供了封装好的类,可以直接调用然后构造阻塞状态,以保证数据的原子性. 2.如何实现? 主要是实现Blo

Java核心知识点学习----多线程 倒计时记数器CountDownLatch和数据交换的Exchanger

本文将要介绍的内容都是Java5中的新特性,一个是倒计时记数器---CountDownLatch,另一个是用于线程间数据交换的Exchanger. 一.CountDownLatch 1.什么是CountDownLatch? 倒计时计数器,调用CountDownLatch对象的CountDown()方法就将计数器减一,当计数到达0时,则所有等待者或者全部等待者开始执行. 2.如何用? new CountDownLatch(1); 直接new,其构造函数必须传一个int类型的参数,参数的意思是: c

Java学习手记2——多线程

一.线程的概念 CPU执行程序,就好比一个人在干事情一样,同一个时间你只能做一件事情,但是这样的效率实在是太低了,在你用电脑的时候,听歌就不能浏览网页,看电影就不能下载视频,你想想是不是很蛋疼. 所以为了解决这个问题,CPU设计成了分时处理的方式,即不同的时间CPU做不同的事情,这样就大大提高了效率,能这样做的原因是因为CPU相对于人的接收信息的速度,快得多!也就是说,你边听歌边浏览网页,看上去好像音乐播放器和浏览器两个程序在同时工作,其实他们是分时在工作,即播放器工作一会,浏览器工作一会,这样

Java 并发和多线程(一) Java并发性和多线程介绍[转]

作者:Jakob Jenkov 译者:Simon-SZ  校对:方腾飞 http://tutorials.jenkov.com/java-concurrency/index.html 在过去单CPU时代,单任务在一个时间点只能执行单一程序.之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程.虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个CPU,并交由操作系统来完成多任务间对CPU的运行切换,以使得每个任务都有机会获得一定的时间片运行. 随着多任务对软件开发者带来的