absolute bruh moment
This commit is contained in:
parent
ad38d64219
commit
31f634c637
2
.gitignore
vendored
2
.gitignore
vendored
@ -203,3 +203,5 @@
|
|||||||
/Semester 4/Assignments/HashMapASDV_Ant/nbproject/private/
|
/Semester 4/Assignments/HashMapASDV_Ant/nbproject/private/
|
||||||
/Semester 4/Assignments/HashMapASDV_Ant/build/
|
/Semester 4/Assignments/HashMapASDV_Ant/build/
|
||||||
/Semester 4/Assignments/HashMapASDV_Ant/dist/
|
/Semester 4/Assignments/HashMapASDV_Ant/dist/
|
||||||
|
/Semester 4/Assignments/MP1_ManyToMany_CalebFontenot/target/
|
||||||
|
/Semester 4/Assignments/Multithreading_CalebFontenot/target/
|
||||||
|
14
Semester 4/Assignments/MP1_ManyToMany_CalebFontenot/pom.xml
Normal file
14
Semester 4/Assignments/MP1_ManyToMany_CalebFontenot/pom.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>edu.slcc.asdv.caleb</groupId>
|
||||||
|
<artifactId>MP1_ManyToMany_CalebFontenot</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<maven.compiler.source>20</maven.compiler.source>
|
||||||
|
<maven.compiler.target>20</maven.compiler.target>
|
||||||
|
<exec.mainClass>edu.slcc.asdv.caleb.mp1_manytomany_calebfontenot.MP1_ManyToMany_CalebFontenot</exec.mainClass>
|
||||||
|
</properties>
|
||||||
|
</project>
|
@ -0,0 +1,114 @@
|
|||||||
|
/*
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||||
|
*/
|
||||||
|
package edu.slcc.asdv.caleb.mp1_manytomany_calebfontenot;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author caleb
|
||||||
|
*/
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author A. V. Markou
|
||||||
|
* @param <Many1>
|
||||||
|
* @param <Many2>
|
||||||
|
*/
|
||||||
|
public interface ManyToMany<Many1, Many2>
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Creates a Many to Many relationship between the parentLeft and the
|
||||||
|
* childrenRight. Example for ( Many1 a, Many2 1, 2, 3) it creates --> (a 1)
|
||||||
|
* ( a 2 ) ( a 3 ) and ( 1, a ), ( 2, a ), ( 3, a). No duplicate values of
|
||||||
|
* Many2 are allowed.
|
||||||
|
*
|
||||||
|
* @param parentLeft - exactly one Many1 object.
|
||||||
|
* @param childrenRight - one or more Many2 objects.
|
||||||
|
* @return the previous value associated with Many1, or null if there was no
|
||||||
|
* Many1 with the same "key".
|
||||||
|
* @throws ClassCastException - if the class of the specified Many1, or
|
||||||
|
* Many2 or value prevents it from being stored in this map( i,e Many1 is
|
||||||
|
* String and you pass an object)
|
||||||
|
* @throws NullPointerException - if the specified Many1 or Many2 is null
|
||||||
|
* and ManyToMany does not permit nulls as values.
|
||||||
|
* @throw IllegalArgumentException - if a duplicate exists in childrenRight
|
||||||
|
* list ( s1 --> p1,p2,p2 is not allowed).
|
||||||
|
* @return the previous value associated with parentLeft, or null if there
|
||||||
|
* was no childrenRight for parentLeft.
|
||||||
|
*/
|
||||||
|
List<Many2> add(Many1 parentLeft, Many2... childrenRight);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the List of all left children of the parentRight.
|
||||||
|
*
|
||||||
|
* @param parentRight a parent at the RHS of the many to many relationship.
|
||||||
|
* @return the List of all left children of the parentRight.
|
||||||
|
* @throw IllegalArgumentException if the value of parameter parentRight
|
||||||
|
* does not exist in the RHS of the many to many relationship.
|
||||||
|
*/
|
||||||
|
List<Many1> getChildrenLeft(Many2 parentRight);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the List of all right children of the parentLeft.
|
||||||
|
*
|
||||||
|
* @param parentLeft a parent at the LHS of the many to many relationship.
|
||||||
|
* @return the List of all right children of the parentLeft.
|
||||||
|
* @throws IllegalArgumentException if the value of parameter parentLeft
|
||||||
|
* does not exist on the LHS of the many to many relationship.
|
||||||
|
*/
|
||||||
|
List<Many2> getChildrenRight(Many1 parentLeft);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a set of the Many1 elements that exist on the LHS of the many to
|
||||||
|
* many relationship.
|
||||||
|
*
|
||||||
|
* @return Set of Many1
|
||||||
|
*/
|
||||||
|
Set<Many1> getParentsLeft();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a set of the Many2 elements that exist on the RHS of the many to
|
||||||
|
* many relationship.
|
||||||
|
*
|
||||||
|
* @return Set of Many2
|
||||||
|
*/
|
||||||
|
Set<Many2> getParentsRight();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the many1 parameter from the LHS of the many relationship AND all
|
||||||
|
* its corresponding values that exist in the RHS of the many to many
|
||||||
|
* relationship. For example given: ( LHS e1: p1, p2 e2: p2, p3 RHS: p1: e1
|
||||||
|
* p2: e1, e2 p3: e2 after removing e1 from the LHS will results into: ( LHS
|
||||||
|
* e2: p2, p3 RHS: p2: e2 p3: e2
|
||||||
|
*
|
||||||
|
* @param many1 the unique element on the LHS to be removed.
|
||||||
|
* @throws NullPointerException if parameter many1 is null.
|
||||||
|
* @return true if the removal occurred, false if many1 does not exist in
|
||||||
|
* the LHS of the many to many relationship.
|
||||||
|
*/
|
||||||
|
boolean removeLeft(Many1 many1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the many1 parameter from the RHS of the many relationship AND all
|
||||||
|
* its corresponding values that exist in the LHS of the many to many
|
||||||
|
* relationship. For example given: LHS e2: p2, p3 RHS: p2: e2 p3: e2 after
|
||||||
|
* removing p2 from the RHS will results into: LHS e2: p3 RHS p3: e2
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param many2 the unique element on the LHS to be removed.
|
||||||
|
* @throws NullPointerException if parameter many1 is null.
|
||||||
|
* @return true if the removal occurred, false if many1 does not exist in
|
||||||
|
* the LHS of the many to many relationship.
|
||||||
|
*/
|
||||||
|
boolean removeRight(Many2 many2);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears all.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void clear();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,182 @@
|
|||||||
|
/*
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||||
|
*/
|
||||||
|
package edu.slcc.asdv.caleb.mp1_manytomany_calebfontenot;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author caleb
|
||||||
|
*/
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author asdv5
|
||||||
|
*/
|
||||||
|
public class ManyToManyFactory {
|
||||||
|
|
||||||
|
public static <Many1, Many2> //generic types to be used in the method
|
||||||
|
ManyToMany< Many1, Many2>//return type
|
||||||
|
createManyToMany()
|
||||||
|
{
|
||||||
|
return new ManyToMany<Many1, Many2>() {
|
||||||
|
private HashSet parents = new HashSet();
|
||||||
|
|
||||||
|
private Map<Object, Object> left = new HashMap();
|
||||||
|
private Map<Object, Object> right = new HashMap();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return "{" + "left=" + left + ", right=" + right + '}';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a Many to Many relationship between the parentLeft and the childrenRight. Example for ( Many1 a, Many2 1, 2, 3) it creates --> (a 1) ( a 2 ) ( a 3 ) and ( 1, a ), ( 2, a ), ( 3, a). No duplicate values of Many2 are allowed.
|
||||||
|
*
|
||||||
|
* @param parentLeft - exactly one Many1 object.
|
||||||
|
* @param childrenRight - one or more Many2 objects.
|
||||||
|
* @return the previous value associated with Many1, or null if there was no Many1 with the same "key".
|
||||||
|
* @throws ClassCastException - if the class of the specified Many1, or Many2 or value prevents it from being stored in this map( i,e Many1 is String and you pass an object)
|
||||||
|
* @throws NullPointerException - if the specified Many1 or Many2 is null and ManyToMany does not permit nulls as values.
|
||||||
|
* @throw IllegalArgumentException - if a duplicate exists in childrenRight list ( s1 --> p1,p2,p2 is not allowed).
|
||||||
|
* @return the previous value associated with parentLeft, or null if there was no childrenRight for parentLeft.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Many2> add(Many1 parentLeft, Many2... childrenRight)
|
||||||
|
{
|
||||||
|
List<Many2> returnList = new ArrayList<Many2>();
|
||||||
|
// Check to see if values already exist in this many to many object
|
||||||
|
if (this.left != parentLeft && this.left != null) {
|
||||||
|
returnList.add((Many2) this.left);
|
||||||
|
this.left = (Map<Object, Object>) parentLeft;
|
||||||
|
}
|
||||||
|
if (this.left != childrenRight && this.right != null) {
|
||||||
|
returnList.add((Many2) this.right);
|
||||||
|
this.left = (Map<Object, Object>) childrenRight;
|
||||||
|
left.put(parentLeft, Arrays.asList(childrenRight));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Many1> getChildrenLeft(Many2 parentRight)
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Many2> getChildrenRight(Many1 parentLeft)
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<Many1> getParentsLeft()
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<Many2> getParentsRight()
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean removeLeft(Many1 many1)
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean removeRight(Many2 many2)
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear()
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) throws InterruptedException
|
||||||
|
{
|
||||||
|
ManyToMany<String, String> mm = ManyToManyFactory.createManyToMany();
|
||||||
|
//mm.add(1, 1);///will not compile, we have Many1, Many2 as String
|
||||||
|
System.out.println("add(e1, p1, p2)returns: " + mm.add("e1", "p1", "p2"));
|
||||||
|
System.out.println("add(e2, p2, p3)returns: " + mm.add("e2", "p2", "p3"));
|
||||||
|
System.out.println("getParentsLeft returns: " + mm.getParentsLeft());
|
||||||
|
System.out.println("getParentsRight returns: " + mm.getParentsRight());
|
||||||
|
System.out.println("getChildrenLeft(p1) returns: " + mm.getChildrenLeft("p2"));
|
||||||
|
System.out.println("getChildrenLeft(p2) returns: " + mm.getChildrenLeft("p3"));
|
||||||
|
System.out.println("getChildrenRight(e1) returns: " + mm.getChildrenRight("e1"));
|
||||||
|
System.out.println("getChildrenRight(e1) returns: " + mm.getChildrenRight("e2"));
|
||||||
|
System.out.println("-----------------------------------------------");
|
||||||
|
System.out.println("The internal hash maps of ManyToMany after insertions: " + mm);
|
||||||
|
|
||||||
|
System.out.println("----------AFTER REMOVAL of e1 LEFT----------------------------------------");
|
||||||
|
System.out.println("removeLeft(e1) returns: " + mm.removeLeft("e1"));
|
||||||
|
System.out.println("getParentsLeft returns: " + mm.getParentsLeft());
|
||||||
|
System.out.println("getParentsRight returns: " + mm.getParentsRight());
|
||||||
|
System.out.println("getChildrenRight(e2) returns: " + mm.getChildrenRight("e2"));
|
||||||
|
System.out.println("getChildrenLeft(p2) returns: " + mm.getChildrenLeft("p2"));
|
||||||
|
System.out.println("getChildrenLeft(p3) returns: " + mm.getChildrenLeft("p3"));
|
||||||
|
System.out.println("The internal hash maps of ManyToMany after removal LEFT: " + mm);
|
||||||
|
|
||||||
|
System.out.println("\n----------AFTER REMOVAL of p2 RIGHT----------------------------------------");
|
||||||
|
System.out.println("removeLeft(p2) returns: " + mm.removeRight("p2"));
|
||||||
|
System.out.println("getParentsLeft returns: " + mm.getParentsLeft());
|
||||||
|
System.out.println("getParentsRight returns: " + mm.getParentsRight());
|
||||||
|
System.out.println("getChildrenRight(e2) returns: " + mm.getChildrenRight("e2"));
|
||||||
|
System.out.println("getChildrenLeft(p3) returns: " + mm.getChildrenLeft("p3"));
|
||||||
|
System.out.println("--------------------------------------------------");
|
||||||
|
System.out.println("mm.removeLeft(e1) returns: " + mm.removeLeft("e1"));
|
||||||
|
|
||||||
|
System.out.println("The internal hash maps of ManyToMany after removal RIGHT: " + mm);
|
||||||
|
Thread.sleep(5000, 0);
|
||||||
|
|
||||||
|
System.out.println("---------------CATCHING EXCEPTIONS -----------------------------------");
|
||||||
|
try {
|
||||||
|
mm.getChildrenRight("e10");//e10 dos not exist
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
System.err.println("getChildrenRight for e10 throws exception:" + e);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
System.out.println(mm.add("e6", new String[]{
|
||||||
|
"value1", null
|
||||||
|
}));
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
System.err.println("add(e6, new String[]{null } ) throws exception: " + e);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
System.out.println(mm.add(null, "p1"));
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
System.err.println("add(null, p1)returns throws exception: " + e);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
System.out.println(mm.getChildrenLeft("p1"));
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
System.err.println("getChildrenRight(p1) throws exception: " + e);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
mm.add((String) new Object(), (String) new Object());
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
System.err.println("add((String) new Object(), (String) new Object()) throws exception: " + e);
|
||||||
|
}
|
||||||
|
mm.clear();
|
||||||
|
System.out.println("-----------------------------------------------");
|
||||||
|
System.out.println("The internal hash maps of ManyToMany after clear: " + mm);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<actions>
|
||||||
|
<action>
|
||||||
|
<actionName>run</actionName>
|
||||||
|
<packagings>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
</packagings>
|
||||||
|
<goals>
|
||||||
|
<goal>process-classes</goal>
|
||||||
|
<goal>org.codehaus.mojo:exec-maven-plugin:3.1.0:exec</goal>
|
||||||
|
</goals>
|
||||||
|
<properties>
|
||||||
|
<exec.vmArgs></exec.vmArgs>
|
||||||
|
<exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args>
|
||||||
|
<exec.appArgs></exec.appArgs>
|
||||||
|
<exec.mainClass>${packageClassName}</exec.mainClass>
|
||||||
|
<exec.executable>java</exec.executable>
|
||||||
|
</properties>
|
||||||
|
</action>
|
||||||
|
<action>
|
||||||
|
<actionName>debug</actionName>
|
||||||
|
<packagings>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
</packagings>
|
||||||
|
<goals>
|
||||||
|
<goal>process-classes</goal>
|
||||||
|
<goal>org.codehaus.mojo:exec-maven-plugin:3.1.0:exec</goal>
|
||||||
|
</goals>
|
||||||
|
<properties>
|
||||||
|
<exec.vmArgs>-agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address}</exec.vmArgs>
|
||||||
|
<exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args>
|
||||||
|
<exec.appArgs></exec.appArgs>
|
||||||
|
<exec.mainClass>${packageClassName}</exec.mainClass>
|
||||||
|
<exec.executable>java</exec.executable>
|
||||||
|
<jpda.listen>true</jpda.listen>
|
||||||
|
</properties>
|
||||||
|
</action>
|
||||||
|
<action>
|
||||||
|
<actionName>profile</actionName>
|
||||||
|
<packagings>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
</packagings>
|
||||||
|
<goals>
|
||||||
|
<goal>process-classes</goal>
|
||||||
|
<goal>org.codehaus.mojo:exec-maven-plugin:3.1.0:exec</goal>
|
||||||
|
</goals>
|
||||||
|
<properties>
|
||||||
|
<exec.vmArgs></exec.vmArgs>
|
||||||
|
<exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args>
|
||||||
|
<exec.mainClass>${packageClassName}</exec.mainClass>
|
||||||
|
<exec.executable>java</exec.executable>
|
||||||
|
<exec.appArgs></exec.appArgs>
|
||||||
|
</properties>
|
||||||
|
</action>
|
||||||
|
</actions>
|
39
Semester 4/Assignments/Multithreading_CalebFontenot/pom.xml
Normal file
39
Semester 4/Assignments/Multithreading_CalebFontenot/pom.xml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>edu.slcc.asdv.caleb</groupId>
|
||||||
|
<artifactId>Multithreading_CalebFontenot</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openjfx</groupId>
|
||||||
|
<artifactId>javafx</artifactId>
|
||||||
|
<version>20</version>
|
||||||
|
<type>pom</type>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openjfx</groupId>
|
||||||
|
<artifactId>javafx-graphics</artifactId>
|
||||||
|
<version>20</version>
|
||||||
|
<classifier>linux</classifier>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openjfx</groupId>
|
||||||
|
<artifactId>javafx-controls</artifactId>
|
||||||
|
<version>20</version>
|
||||||
|
<classifier>linux</classifier>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openjfx</groupId>
|
||||||
|
<artifactId>javafx-maven-plugin</artifactId>
|
||||||
|
<version>0.0.4</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
|
<maven.compiler.target>17</maven.compiler.target>
|
||||||
|
<exec.mainClass>edu.slcc.asdv.caleb.multithreading_calebfontenot.Multithreading_CalebFontenot</exec.mainClass>
|
||||||
|
</properties>
|
||||||
|
</project>
|
@ -0,0 +1,86 @@
|
|||||||
|
/*
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||||
|
*/
|
||||||
|
package edu.slcc.asdv.caleb.multithreading_calebfontenot;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author caleb
|
||||||
|
*/
|
||||||
|
import javafx.application.Application;
|
||||||
|
import javafx.application.Platform;
|
||||||
|
import javafx.scene.Scene;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.scene.layout.StackPane;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
|
public class FlashText extends Application
|
||||||
|
{
|
||||||
|
private String text = "";
|
||||||
|
@Override // Override the start method in the Application class
|
||||||
|
|
||||||
|
public void start(Stage primaryStage)
|
||||||
|
{
|
||||||
|
StackPane pane = new StackPane();
|
||||||
|
Label lblText = new Label("Programming is fun");
|
||||||
|
pane.getChildren().add(lblText);
|
||||||
|
|
||||||
|
Thread t1 = new Thread(
|
||||||
|
new Runnable()
|
||||||
|
{
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
if (lblText.getText().trim().length() == 0)
|
||||||
|
text = "Welcome";
|
||||||
|
else
|
||||||
|
text = "";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Platform.runLater(
|
||||||
|
new Runnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
lblText.setText(text);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Thread t2 =new Thread( new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
lblText.setText(text);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
Thread.sleep(300);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (InterruptedException ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
t1.start();
|
||||||
|
|
||||||
|
// Create a scene and place it in the stage
|
||||||
|
Scene scene = new Scene(pane, 200, 50);
|
||||||
|
primaryStage.setTitle("FlashText"); // Set the stage title
|
||||||
|
primaryStage.setScene(scene); // Place the scene in the stage
|
||||||
|
primaryStage.show(); // Display the stage
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args)
|
||||||
|
{
|
||||||
|
launch(args);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||||
|
*/
|
||||||
|
package edu.slcc.asdv.caleb.multithreading_calebfontenot;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author caleb
|
||||||
|
*/
|
||||||
|
public class PrintChar implements Runnable{
|
||||||
|
|
||||||
|
private char charToPrint;
|
||||||
|
private int times;
|
||||||
|
|
||||||
|
public PrintChar(char charToPrint, int times)
|
||||||
|
{
|
||||||
|
this.charToPrint = charToPrint;
|
||||||
|
this.times = times;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < times; ++i) {
|
||||||
|
System.out.println(charToPrint);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 1000; ++i) {
|
||||||
|
System.out.println("lmao");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class PrintNum implements Runnable {
|
||||||
|
private int lastNum;
|
||||||
|
|
||||||
|
public PrintNum(int lastNum)
|
||||||
|
{
|
||||||
|
this.lastNum = lastNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
for (int i = 1; i <= lastNum; ++i) {
|
||||||
|
System.out.print(" " + i);
|
||||||
|
Thread.yield();
|
||||||
|
if (i % 10 == 0) {
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||||
|
*/
|
||||||
|
package edu.slcc.asdv.caleb.multithreading_calebfontenot;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author caleb
|
||||||
|
*/
|
||||||
|
public class RunFlash {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
FlashText.main(args);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||||
|
*/
|
||||||
|
package edu.slcc.asdv.caleb.multithreading_calebfontenot;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author caleb
|
||||||
|
*/
|
||||||
|
public class Threads {
|
||||||
|
public static void main(String[] args)
|
||||||
|
{
|
||||||
|
// Create tasks
|
||||||
|
Runnable printA = new PrintChar('a', 100);
|
||||||
|
Runnable printB = new PrintChar('b', 100);
|
||||||
|
Runnable print100 = new PrintNum(100);
|
||||||
|
|
||||||
|
// Create threads
|
||||||
|
Thread thread1 = new Thread(printA);
|
||||||
|
Thread thread2 = new Thread(printB);
|
||||||
|
Thread thread3 = new Thread(print100);
|
||||||
|
|
||||||
|
// Start threads
|
||||||
|
thread1.start();
|
||||||
|
thread2.start();
|
||||||
|
thread3.start();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||||
|
*/
|
||||||
|
|
||||||
|
package edu.slcc.asdv.caleb.multithreading_calebfontenot;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author caleb
|
||||||
|
*/
|
||||||
|
public class forkbomb
|
||||||
|
{
|
||||||
|
public static void main(String[] args) throws IOException
|
||||||
|
{
|
||||||
|
Runtime.getRuntime().exec(new String[]{"java", "-cp", System.getProperty("java.class.path"), "forkbomb"});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user