发表于: 2018-01-18 23:16:32

3 599


今天完成的事情:

1. 完成3个接口

查看教材详情


2. 小课堂


明天计划的事情

1.课时列表,添加课时接口

2. 判空Util


遇到的问题:




收获:

1. 

方法1 : start()

          start( )方法是同步的,并且是启动这个线程进行执行,Java虚拟机将会调用这个线程的run方法,这样产生的结果是,两个线程执行着,其中一个是调用start()方法的线程执行,另一个线程是执行run方法的线程。在start()方法中,首先进行的成状态的判断,如果是一个JVM新启动的线程,那么threadStatus 的状态是为0的,如果线程不为0 将报出异常, 然后将线程添加到group中, group.add(this)方法中执行的结果是,通知group, 这个线程要执行了,所以可以添加进group中,并且这个线程组中没有没有启动的数量将减少。然后设置标识为, 接着调用本地方法started0,如果没有启动成功,将会通知这个线程组,没有启动成功,捕捉的异常将会忽略


2. join()方法

join方法是等待该线程执行,直到超时或者终止,可以作为线程通信的一种方式,A线程调用B线程的join(阻塞),等待B完成后再往下执行。


3. start0( ) 一个本地方法,通过他来判断

 1 private native void start0();

  这里使用了本地调用,通过C代码初始化线程需要的系统资源。可见,线程底层的实现是通过C代码去完成的。



2. 通过反射来获取Object的值,以此来进行数据的操作

public void obsd () throws  Exception{
Book book = new Book();
   book.setId(1L);
   book.setSequence(1);
   book.setUpdateBy(1215455555L);
   book.setPicture("55454545");
   book.setGrade(1);
   book.setVersion("45545");
   book.setName("5665");
   Object o = book;



   Class clazz = o.getClass();
   Method m1 = clazz.getDeclaredMethod("getId");
   Method m2 = clazz.getDeclaredMethod("getSequence");
   Method m3 = clazz.getDeclaredMethod("getUpdateBy");
   Method m4 = clazz.getDeclaredMethod("getPicture");



   Object mm1 = m1.invoke(o);
   Object mm2 = m2.invoke(o);
   Object mm3 = m3.invoke(o);
   Object mm4 = m4.invoke(o);

   System.out.println(mm1.toString());
   System.out.println(mm2.toString());
   System.out.println(mm3.toString());
   System.out.println(mm4.toString());





任务进度:课时列表,添加课时接口

预计完成时间:1.19

DOME时间:2018-2-9






返回列表 返回列表
评论

    分享到