Home Java javaTutorial Multithreading_How to write several timers

Multithreading_How to write several timers

Dec 16, 2016 pm 01:51 PM

1: Execute the task once after a fixed time: execute the task after 1000 milliseconds (execute only once)

2: Execute the task after 5000 milliseconds, and then execute the task again every 1000 milliseconds (infinite execution)

3: Alternate regeneration : The task is executed alternately in 2 seconds and 4 seconds (infinite execution),

4: Create two cyclic alternating tasks: after 2 seconds, task A is executed. A task B is created in task A and executed 4 seconds later, and a task A is created in task B and executed 2 seconds later, and so on.

1,2,3 codes:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

import java.util.Date

import java.util.Timer; 

import java.util.TimerTask; 

/**

 * @author Administrator @zsw 2012-7-19 下午04:37:19

 */ 

public class TraditionalTimer { 

    public static void main(String[] args) { 

        //1: 

//      test1(); 

           

        //2: 

//      test2(); 

           

        //3: 

        test3(); 

        //用于打印时间秒数 

        while (true) { 

            System.out.println(new Date().getSeconds()); 

            try

                Thread.sleep(1000); 

            } catch (InterruptedException e) { 

                // TODO Auto-generated catch block 

                e.printStackTrace(); 

            

        

           

           

    

   

    //1:固定时间后执行一次任务:1000毫秒后执行任务(只执行一次) 

    public static void test1() { 

        new Timer().schedule(new TimerTask() { 

            @Override 

            public void run() { 

                // TODO Auto-generated method stub 

                System.out.println("bombing!"); 

            

        }, 1000); 

    

   

    // 2:5000毫秒后,执行任务,以后每隔1000毫秒再执行一次任务(无限执行) 

    public static void test2() { 

        new Timer().schedule(new TimerTask() { 

            @Override 

            public void run() { 

                // TODO Auto-generated method stub 

                System.out.println("bombing!"); 

            

        }, 5000, 1000); 

    

   

       

    //3:交替再生:任务2秒4秒交替的执行(无限执行), 

    static int count = 0; 

    public static void test3() { 

   

        class MyTimerTask extends TimerTask { 

            @Override 

            public void run() { 

                count = (count + 1) % 2; 

                System.out.println("bombing!"); 

                new Timer().schedule(new MyTimerTask(), 2000 + count * 2000); 

            

        

        new Timer().schedule(new MyTimerTask(), 2000); 

    

   

}

Copy after login

4 codes

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

import java.util.Date

import java.util.Timer; 

import java.util.TimerTask; 

   

/**

 * @author Administrator @zsw 2012-7-20 下午08:08:42

 */ 

public class TraditionalTime2 { 

       

    /*

     * 创建两个循环交替任务:2秒后,A任务执行。

     * A任务里面创建一个B任务4秒后执行,B任务里面又创建一个A任务2秒后执行,,如此往复。

     

     */ 

    public static void main(String[] args) { 

        TraditionalTime2 t2=new TraditionalTime2(); 

        new Timer().schedule(t2.new A(), 2000); 

           

         //用于打印时间秒数 

        while (true) { 

            System.out.println(new Date().getSeconds()); 

            try

                Thread.sleep(1000); 

            } catch (InterruptedException e) { 

                // TODO Auto-generated catch block 

                e.printStackTrace(); 

            

        

    

    class A extends TimerTask { 

        @Override 

        public void run() { 

            System.out.println("A bombing!"); 

            new Timer().schedule(new B(), 4000); 

   

        

   

    

   

    class B extends TimerTask { 

        @Override 

        public void run() { 

            System.out.println("B bombing!"); 

            new Timer().schedule(new A(), 2000); 

   

        

    

}

Copy after login


For more multi-threading_several timer writing methods related articles, please pay attention to the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How does Java's classloading mechanism work, including different classloaders and their delegation models? How does Java's classloading mechanism work, including different classloaders and their delegation models? Mar 17, 2025 pm 05:35 PM

Java's classloading involves loading, linking, and initializing classes using a hierarchical system with Bootstrap, Extension, and Application classloaders. The parent delegation model ensures core classes are loaded first, affecting custom class loa

How do I implement multi-level caching in Java applications using libraries like Caffeine or Guava Cache? How do I implement multi-level caching in Java applications using libraries like Caffeine or Guava Cache? Mar 17, 2025 pm 05:44 PM

The article discusses implementing multi-level caching in Java using Caffeine and Guava Cache to enhance application performance. It covers setup, integration, and performance benefits, along with configuration and eviction policy management best pra

How can I use JPA (Java Persistence API) for object-relational mapping with advanced features like caching and lazy loading? How can I use JPA (Java Persistence API) for object-relational mapping with advanced features like caching and lazy loading? Mar 17, 2025 pm 05:43 PM

The article discusses using JPA for object-relational mapping with advanced features like caching and lazy loading. It covers setup, entity mapping, and best practices for optimizing performance while highlighting potential pitfalls.[159 characters]

How do I use Maven or Gradle for advanced Java project management, build automation, and dependency resolution? How do I use Maven or Gradle for advanced Java project management, build automation, and dependency resolution? Mar 17, 2025 pm 05:46 PM

The article discusses using Maven and Gradle for Java project management, build automation, and dependency resolution, comparing their approaches and optimization strategies.

How do I create and use custom Java libraries (JAR files) with proper versioning and dependency management? How do I create and use custom Java libraries (JAR files) with proper versioning and dependency management? Mar 17, 2025 pm 05:45 PM

The article discusses creating and using custom Java libraries (JAR files) with proper versioning and dependency management, using tools like Maven and Gradle.

See all articles