重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
没理解什么意思,如果是要某个线程在执行某些代码的时候其他线程不争夺cpu的话 可以使用同步代码快synchronized或者线程锁lock
创新互联建站是专业的衢江网站建设公司,衢江接单;提供成都网站建设、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行衢江网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
线程用到Thread或者Runnable接口(Thread也操作了Runnable接口)
继承了Thread类后需要重载其run方法,在方法里写你需要完成的事情,开始线程是调用其start方法。
操作Runnable接口必须实现其run方法,在方法里写你需要完成的事情,Runnable接口没有start方法,所以启动线程还是需要依靠Thread类 new Thread(Runnable runnable).start();
一般项目中多是操作接口,因为类只能单继承,接口可以操作多个。
所谓单线程是指
类或者类其中的某些方法或者代码块只能“同时”被一个线程执行。
当有多个线程同时执行到此处时,只有当正在执行的线程运行完毕,释放锁之后,其它线程才可以继续执行。
在集合框架(Collection Frame)中有很多java基础类,都是单线程的。
如Vector、HashTable。等
一般在java中非常典型的单线程模式就是在IO操作中出现。
如果你是直接写的代码设置时间的,可以设置每48小时,翻翻API就有了,既然你问了,肯定是通过XML配置文件写的,那只能给一个解决方案了,在配置文件中虽然有0 0 0 1/2 * ? 来表示从每月1号起每2天0点0分0秒执行一次,但遇到31这样的月份就会错,不建议使用。
想到的解决方案有2种,一种设置成每天跑一次,定义个static boolean变量 第一次执行的时候改成false并执行,第2天的执行获取该值,发现是false把值变成true不执行,发现是true改成false执行。
第2种方法其实是为了防止项目被重启static变量重置的,这个boolean值(或者你自定义的标示符)放到数据库里,没天执行的时候读一下库。当然在指定位置生成一个空文件,每次执行判断该位置的文件是否存在也一样(覆盖项目的时候记得,如果这个文件有复制到相关位置就好了)