写了几个月代码,一直没考虑过线程问题。最近看公司别人写的代码有些迷惑。
  有个需求是 将doc转为pdf   解决方案是 java 调用openoffice程序来解决。
  代码大致为(伪代码):
  public class  changtoDoc{
   
     public synchronized void toDoc(String path1,String path2){
       
                  调用服务器安装的openOffice软件//
     }
  }

解决方案 »

  1.   

    问题1     以前学线程的时候  synchronized   都是和线程一起使用的  
               即类  A extends Thread  实现了 runnable接口   然后其中的某个方法 加了 synchronized
             这里没看到实现线程在哪里?问题2    类 B中   实现了删除一条数据  现在有100个用户同时删除100条记录  类 B 被实例化了多少次?
              (平时写代码从来实现线程)问题3    都说线程交给了 tomcat   大神简单说说 tomcat线程相关知识  简单说说自学时好有个大体方向
      

  2.   

    问题1:synchronized是跟线程有关,但是不是只有Runnable里的方法才用synchronized修饰的,synchronized获取的当前(或提供的)对象或类的锁,所以任何类中的方法都可以用synchronized,如果该类被不同的线程(Runnable的)调用了,synchronized的方法就会被同步执行。
    问题2:不懂。实例化多少次看你new了多少次
    问题3:tomcat使用多线程来处理响应请求,一般两个相同的请求同时到达,就会在两个不同的线程里处理。这里有并发,所以线程交给tomcat,就是不需要你显式创建线程,但是运行环境依然是多线程的。(本条纯属个人观点,不熟,可参照别的回答)
      

  3.   

    上面写错一个地方:应该是【这里有并发,所谓线程交给tomcat。】
    一字之差,不过实在有碍理解。