码迷,mamicode.com
首页 > 其他好文 > 详细

IT十八掌掌第八天课程总结

时间:2016-05-15 00:43:47      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:java基础   start   课程   程序   隔离   

今天学完IT十八掌第八天java基础课程:


学习内容:


复习jar命令

---------------

   

    [将类路径下的类打成jar文件]    

        jar cvf myjar.jar -C classes/ .

        jar cvfe myjar.jar a.a1.a11.a111.A -C classes/ .        //e指定的入口点.

    [使用java -jar参数来运行程序]

        java -jar myjar.jar                            //执行jar文件

        java -jar myjar.jar    a.a1.a11.a111.A            //执行jar文件指定入口点。

进程

-----------------

    进程之间内存式隔离的。内存不共享。

        eg:扫雷,qq

线程

-----------------

    程序执行过程中,并发执行的代码段。

    线程之间可以共享内存。

    Thread : 线程类。

        start()        //通知cpu,可以开始执行该线程。

        run()        //线程具体执行的代码段。

    Thread t = new Thread();

    t.start();

    Thread.currentThread()        //得到当前的执行线程。

    yield()                        //让线程放弃cpu的抢占权。

    join()                        //等待当前进程完成,

    sleep(int mils)                //让当前线程休眠指定的毫秒数.

    线程安全:增加了同步处理。确保在同一时刻,只有一个线程执行同步代码。

             同步方法使用的当前对象作为同步对象。

             静态方法可以加同步处理,使用Class作为同步对象。

KTV : 

    Box :        //3

    Waiter        //守护线程 daemon  Thread.setDaemon(true);

    yield()

    join()

    sleep(int ms);

    setDaemon(true);    //线程启动前设置

    isDaemon();            //指定线程是否是守护线程

    start();            //启动线程

    run();                //

    notify()            //选择一个监控器对象等待队列中的线程进行通知。

    notifyAll()            //选择所有监控器对象等待队列中的线程进行通知。

    wait()                //将当前线程放入监控器的等待队列中。

    wait(int n )        //线程进入到等待队列后,最多等待n长时间,时间一旦,自动唤醒。


生产者 + 消费者问题

------------------------

    List list = new ArrayList(); //数组列表

    List<Integer> list = new ArrayList<Integer>();    //使用泛型,创建一个整数数组列表



遇到的问题:

  1,多线程的生产消费问题。

        |---两个线程操作同一个资源,首先需要保证操作资源时同步(synchronized),其次应该保证资源存             取和取出是有意义的。也就是线程之间通信正常(notify,wait)。还有就是注意死锁。

  2,集合List以及泛型使用。

        |---将以特定次序存储元素。所以取出来的顺序可能和放入顺序不同。

        元素是有序的,元素可以重复,因为该集合体系有索引。

  3,多线程中的死锁问题,什么时候该使用yield(),notify,notifyAll,wait()

        死锁是进程死锁的简称, 产生死锁的原因有两个

             一种原因是系统提供的资源太少了,远不能满足并发进程对资源的需求。

            另一种原因是由于进程推进顺序不合适引发的死锁。

需要帮助的问题

        1,生产消费问题

        2,死锁

        3,集合


本文出自 “菜鸟成就数据之路” 博客,转载请与作者联系!

IT十八掌掌第八天课程总结

标签:java基础   start   课程   程序   隔离   

原文地址:http://liubx.blog.51cto.com/11235064/1773446

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!