学习啦>论文大全>论文写作指导>

论文中的页码怎么设置页码

时间: 家文952 分享

  论文反映出作者能够准确地掌握所学的专业基础知识,那论文中的页码怎么设置页码呢?下面小编给大家分享一些论文中的页码怎么设置页码的方法,大家快来跟小编一起欣赏吧。

  论文中的页码怎么设置页码

  一、 在菜单栏选择插入,进入页脚选项,在弹出的窗口点击编辑页脚

  二、接着在菜单栏会出现设计这一选项,点击页码,在弹出的窗口选择页面底端,然后出现底端各种样式,一般选择居中的页码也就是选择普通数字2

  三、点击普通数字2选项

  四、有时我们的毕业论文需要用到其他的页码,而非普通的阿拉伯数字,这时就需要在页码选项点击设置页码格式选项

  五、在页码格式窗口,选择编号格式,起始页码,点击确定.

  六、最后在页脚就出现数字

  关于java的论文范文

  Java多线程技术

  摘要:本文首先介绍了线程的有关概念, 接着介绍了线程的生命期及其状态间的转换, 多线程的调度原则, 线程的死锁, 详细阐述了多线程的两种实现方法:由Thread类派生子类;实现Runnable接口。

  关键词:Java语言; 进程; 多线程;线程调度;死锁

  中图分类号:TP312JA 文献标识码:A

  1 引言

  多线程编程是Java语言的一个重要特色,Java对创建多线程程序提供了广泛的支持,Java的多线程是一个类或程序执行和管理多个线程的能力,每个执行线程可独立执行其他线程或与其他线程同步执行。Java的多线程机制能够很方便地创建和运行多个独立的线程的程序,并且可以创建多个同步线程,实现多个任务的同步执行,这一机制对于实现资源共享、防止“死锁”现象的出现极为有用。多线程的程序能更好地表达和解决具体问题,是计算机应用开发和程序实现的发展趋势。

  2 Java语言的线程

  2.1线程相关的概念

  程序是解决某一问题的代码系列,是一段静态的代码。进程是一个动态的概念,它是程序的一次动态执行过程,对应代码从加载、运行开始到运行完毕的一个完整的过程,这个过程是进程从产生、发展到消亡的过程。线程又称为“轻量进程”,是进程中一个顺序的执行流,一个进程在其执行的过程中,可以形成多个执行线索,每个执行线索就是一个线程。线程也是一个动态的概念,它对应一个程序段的一次动态的执行过程。一个进程中可以包含一个或多个线程,线程是比进程更小的单元。

  多线程指的是在一个程序中可以同时运行多个不同的线程,即一个程序中包含有多个执行流,借以执行不同的任务。

  虽然线程与进程都是顺序执行的指令序列,但它们之间是有区别的。一方面,进程是一个实体,每个进程都有自己独立的状态,并有自己的专用数据段;创建进程时,必须建立和复制其专用数据段。而线程则相互共享数据段,同一程序中的所有线程只有一个数据段,以避免进行无谓的数据复制,因此线程的建立和线程间的切换速度大大优于进程。另一方面,线程又具备进程的大多数优点。但是,由于多个线程共享一个数据段,所以,也出现了数据访问过程的互斥和同步问题,使得系统管理功能变得相对复杂。

  将进程划分成多个线程,目的是为了实现并行程序设计,在同一地址空间中执行多个控制流,减少并行执行时进程间切换的系统开销,因此可以大大提高应用程序的执行效率。

  2.2线程的生命期与状态转换

  线程同进程一样,是一个动态的概念,所以线程同进程一样,也有一个从产生到消亡的生命周期,在其生命周期中,程序可以对线程进行各种控制操作。一个新建的线程的生命期中有如下5种状态。

  (1)新建态(Newborn)

  当线程用new运算符创建但还未执行的这段时间里,它处于新建状态中,此时,线程对象已被分配了相应的内存空间并被初始化。

  创建线程的语句可以表示如下:Threaadt1=newThread( );

  (2)就绪状态或可运行状态(Runnable)

  当新建的线程调用start( )启动方法后,就会由新建态进入可运行态。可运行态的线程进入线程队列排队等待CPU资源,随时可以被调度执行。至于可运行态的线程何时才被真正执行,则取决于线程的优先级和排队队列的当前状况。

  使线程对象t1由新建态进入可运行态的语句可以表示如下:

  t1.start( );

  (3)运行态(Running)

  当可运行的线程被CPU调度后,就进入运行态,运行态表明线程正在运行,即线程对象正在调用本对象的run( )方法。

  (4)挂起态(Blocked)

  一个正在运行的线程遇到某些特殊情况时,将会进入挂起态。如果一个线程处于挂起状态,这个线程暂时无法进入排队队列。

  (5)消亡态(Dead)

  表示线程已退出运行状态,不再具有继续运行的能力。线程消亡的原因有两种: 一是线程正常运行终止, 即调用完run( )方法自然消亡: 二是非正常消亡, 例如执行了stop( )方法或destory()方法。

  2.3线程的优先级与调度

  Java 提供一个线程调度器来监控启动后进入就绪状态的所有线程。线程调度器根据线程的优先级决定调度线程的先后顺序,优先级高的线程先调度,优先级低的线程后调度。同时,线程的调度又是抢先式的,如果在当前线程的执行过程中,一个具有更高优先级的线程进入就绪状态,则这个高优先级的线程将立即被调度执行。

  线程的优先级的范围是1~10,Thread类用3个常量来表示线程的优先级,分别为:Thread.MIN_PRIORITY, 优先级为1,Thread.MAX_PRIORITY, 优先级为10,Thread.NORM_PRIORITY, 即为缺省优先级5,通过setPriority( )方法可以改变线程的优先级。

  3 Java多线程的实现

  在Java中,多线程的实现方式有两种:可以由线程Thread类派生子类,由子类生成的对象来实现多线程;也可以直接定义一个线程类来实现Runnable接口,由该线程类生成对象来实现多线程。下面分别介绍两种方法实现多线程的过程。

  3.1由Thread类派生子类

  Thread是一个具体的类,它封装了线程的所有行为。Thread类负责向其他类提供线程的最主要的功能,为了向一个类增加线程功能,可以由Thread类派生一个子类并同时覆盖run( )方法。run( )方法是是线程执行的起点,可以通过定义run( )方法来为线程提供代码。

  下面的程序由Thread类来构造多线程。

  classThreadExample

  {public static void main(String args[])

  {subThreadt1=newsubThread(“thread1”);//创建线程对象

  subThreadt2=newsubThread(“thread2”);

  t1.start( ); //启动线程

  t2.start( );

  try{ Thread.currentThread( ).sleep(500); //当前线程睡眠500毫秒

  }

  catch(InterruptedExceptione)

  {System.out.println(Thread.currentThread( ) +“线程睡眠500毫秒”); }

  }

  }

  classsubThreadextends Thread

  {public voidrun( )

  {for(int j=0;j<3;j++)

  System.out.println(Thread.currentThread( )+“运行”+j+“次”);

  try{Thread.currentThread( ).sleep((int)(Math.random()*300);

  //当前线程睡眠时间为随机数。

  }catch(InterruptedExceptione)

  { System.out.println(“线程睡眠时间在0~300毫秒间!”); }

  }

  }

  该例中通过两个线程睡眠,从而让两个线程交互运行。

  3.2实现Runnable接口

  实现Runnable接口是在程序中使用线程的另一种方法。在某些情况下,一个类已经扩展了Frame或Applet, 因而这样的类不能再继承Thread类。Runnable接口为一个类提供了一种无须扩展Thread类就可以执行一个新的线程的方法。这种创建线程的方法更具灵活性,也使用户线程能够具有其他的一些类的特征。

  Runnable接口是定义在java.lang包中的一个接口,其声明如下:

  publicinterfacejava.lang.Runnable

  {public abstract void run( );}

  下面的程序由实现Runnable接口来构造多线程。

  publicclassThreadExample2implementsRunnable

  { ThreadExample2 ( )//构造方法

  {Threadt1=Thread.currentThread( ); //创建线程t1

  t1.setName(“The first main thread”);

  t1.start( ); //启动线程t1

  System.out.println(“The running thread:”+Thread1 );

  Threadt2=new Thread(this,“the second thread”); //创建线程t2

  System.out.println(“creat another thread”);

  t2.start();////启动线程t2

  }

  public void run( )

  {try{

  for(int i=0;i<4;i++)

  {

  System.out.println(“Sleep time for thread:”+i);

  Thread.sleep(800);

  }

  }

  catch(InterruptedExceptione)

  {System.out.println(“thread has wrong”); }

  }

  publicstaticvoidmain(Stringargs[ ])

  {newThreadExample2 ( ); }

  }

  3.3 实现多线程两种方法的比较

  Thread类最重要的方法是run(),该方法被Thread类的start( )启动方法所调用。要继承Thread类,就得覆盖方法run(),在run( )方法体中加入线程所要执行的代码。缺点是如果一个类继承了其他类,如Frame类或Applet类,就无法再继承Thread类,这种情况下必须再创建新类。

  Runnable接口中声明了一个抽象方法run( ),某一个自定义类实现Runnable接口,就是在该类的类体中,将用户线程代码写入run()方法的方法体。Runnable接口本身不支持线程,但可通过创建Thread类的对象来实现。使用Runnable接口来实现多线程能在一个类中包含所有的代码,利于封装,缺点是只能使用一套代码,若要创建多个不同的线程代码并执行,仍需另外创建类。

  4 实现多线程时避免死锁

  由于系统资源有限,程序中的多个程序互相等待对方资源,而在得到对方资源前不会释放自己的资源,造成都想得到资源而又都得不到资源,从而导致线程不能继续执行,这就是死锁问题。例如,一个线程持有对象A,另一个线程持有对象B,第一个线程在持有对象A,但必须拥有第二个线程所持有的对象B才能执行;同样,第二个线程在持有对象B,但必须拥有第一个线程所持有的对象A才能执行,这两个线程就会无限期地阻塞,这时,线程的死锁就发生了。

  线程的死锁很少发生,但一旦发生就很难调试。应尽量避免死锁的发生。

  为了防止死锁现象的发生,在多线程程序设计时可遵循如下原则:

  (1)尽量少采用多线程来进行程序设计

  (2)在对象的同步方法中调用其它的同步方法要小心

  (3)在synchronized封装的块中的执行时间尽可能地短,需要长时间运行的任务尽量不要放在synchronized封装的同步块中。

  5 结束语

  多线程在计算机应用中具有非常积极的意义和广阔的应用前景。利用Java的多线程特性可方便地编写高效率、安全的多线程应用程序。多线程编程增强了程序的交互性,降低了编写复杂任务处理程序的难度,改善了多处理器的性能并增大了数据的吞吐量。当然Java在实现多线程时也有缺点:如对线程的管理会增加CPU的额外负担等。

  参考文献

  [1]耿祥义等.Java2实用教程[M].北京:清华大学出版社,2004.

  [2]赵海廷等.Java语言程序设计[M].武汉:武汉大学出版社,2005.

  [3]朱福喜等.Java语言与面向对象程序设计[M].武汉:武汉大学出版社,2000.

  
看了“论文中的页码怎么设置页码_怎么设置论文中的页码”的人还看:

1.论文的页码怎样设置

2.毕业论文的页码如何设置页码

3.毕业论文怎么设置页码呢

4.毕业论文的页码怎么设置页码

5.论文怎么从正文开始设置页码

2576126